我正在关注有关Cinder的教程,在该教程中您将图像加载并显示为cinder::gl::Texture对象。此类没有convert2Grayscale方法,因此
我自己可以实现类似的东西吗? 我可以使用单独的像素来访问a simple algorithm吗? (访问像素实际上更重要,因为我想将其用于另一个项目)

最佳答案

每个像素由3D vector [R,G,B]表示
其中R是红色通道的[0,1]中的值,G是绿色通道的[0,1]中的值,B是蓝色通道的[0,1]中的值。将3D RGB像素转换为表示光强度为[0,1](即灰度)的标量Y的最简单方法是使用以下公式:

Y = .2126 * R ^ Gamma + .7152 * G ^ Gamma + .0722 * B ^ Gamma

大多数系统中的 Gamma 等于2.2

现在,就涉及访问煤渣中图像的像素而言,您必须将图像加载到Surface对象上。煤渣中的表面对象具有用于访问单个像素的界面功能。观看有关此操作的惊人教程:http://www.creativeapplications.net/tutorials/images-in-cinder-tutorials-cinder/

10-06 02:19