Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用C语言获得图像每个像素的强度?_C_Image Processing - Fatal编程技术网

如何使用C语言获得图像每个像素的强度?

如何使用C语言获得图像每个像素的强度?,c,image-processing,C,Image Processing,AKA如何将bmp图像转换为每个像素强度值的2D矩阵?Fgg 一种方法是平均每个像素的强度(例如红色、绿色和蓝色)并平均它们 例如: 红色是128,蓝色是128,绿色是128,强度是128。 红色为0,蓝色为100,绿色为255,强度为118 如果像素具有内置的强度值,则可以在整个图像中平均这些值。有些图像有元标记,其中包括亮度,也可以使用。不过,上面的平均值是我过去在程序内部使用过的一种方法,它在确定图像亮度方面效果相当好 编辑:但我需要提醒您,可能需要更复杂的算法,因为由于平均值的限制,RG

AKA如何将bmp图像转换为每个像素强度值的2D矩阵?

Fgg

一种方法是平均每个像素的强度(例如红色、绿色和蓝色)并平均它们

例如: 红色是128,蓝色是128,绿色是128,强度是128。 红色为0,蓝色为100,绿色为255,强度为118

如果像素具有内置的强度值,则可以在整个图像中平均这些值。有些图像有元标记,其中包括亮度,也可以使用。不过,上面的平均值是我过去在程序内部使用过的一种方法,它在确定图像亮度方面效果相当好

编辑:但我需要提醒您,可能需要更复杂的算法,因为由于平均值的限制,RGB值的总体平均值可能无法按您希望的方式工作。例如,真正明亮的像素实际上可能会增加图像的亮度,但您可能在结果中看不到它。类似地,通过平均获得的亮度值可能无法准确地表示图像的真实亮度,这取决于明亮像素的图案

这个问题有点模糊,但我希望我的回答能有所帮助


Dan Chase

有几种方法可以从
RGB
坐标推导强度。 在
YCbCr
颜色模型中使用的最流行的方法之一是应用线性变换,通常
Y=0.299*R+0.587*G+0.114*B


其他方法要么取平均值,要么取最大值(R,G,B)。您可以阅读更多内容。

请先尝试一下。这是一个非常广泛的问题。请花些时间阅读,尤其是书页和书页。另外,请阅读关于和如何创建.Wa!太快了。实际上,我对强度的定义有点困惑,这似乎不是一个明确的概念。但我认为对于一个简单的项目,仅仅计算RGB的平均值就可以了。更详细地说,CImage是解决这个问题的好方法吗?CImage不包含神奇的get_强度函数,但您可以使用GetPixel获得每个像素的值。。我不会这样做,而是将整个图像放入内存结构中,并手动迭代。编辑:GetBits可以从CImage的角度帮助您。再次感谢,我知道CImage没有直接获取强度的功能,我计划使用getPixel。无论如何,非常感谢你。不客气,如果你觉得我回答的问题足够充分,请不要忘记在答案上打勾。谢谢大多数更好的计算图像“亮度”的方法都考虑了人眼对可见光谱的反应。(rgb值)