- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在学习关于 Cinder 的教程将图像加载并显示为 cinder::gl::Texture
对象。这个类没有 convert2Grayscale
方法,所以是否可以自己实现类似的东西? 我可以访问单独的像素吗我可以申请 a simple algorithm ? (访问像素实际上更重要,因为我想将其用于另一个项目)
最佳答案
每个像素由一个 3D vector [R,G,B] 表示其中R是红色 channel [0,1]中的值,G是绿色 channel [0,1]中的值,B是蓝色 channel [0,1]中的值。将 3D RGB 像素转换为表示 [0,1] 中的光强度(即灰度)的标量 Y 的最简单方法是使用以下公式:
Y = .2126 * R^ Gamma + .7152 * G^ Gamma + .0722 * B^ Gamma
大多数系统中的 gamma 等于 2.2
现在就访问 cinder 中的图像像素而言,您必须将图像加载到 Surface 对象上。 cinder 中的表面对象具有用于访问单个像素的接口(interface)函数。有关如何操作的精彩教程,请参阅:http://www.creativeapplications.net/tutorials/images-in-cinder-tutorials-cinder/
关于c++ - 用煤渣转换为灰度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21803353/
我有一个 Shapes vector ,Shape 是我写的一个类。在 keyDown 函数中,我遍历了这个 Shapes vector 并将 bool 属性 background 更新为 true。
我是一名优秀的程序员,十分优秀!