使用Qt将图片转换为灰度图

 

原文链接:

https://www.fearlazy.com/index.php/post/283.html

 

灰度图没有彩色,它的RGB色彩分量全相等,如(100,100,100)和(200,200,200),值越大越亮。

要将图片转换为灰度图只需要根据各像素的RGB值计算出对应的灰度值即可。那么问题来了灰度值该怎么计算呢?

方法有好几种,有取直接取G的值的,也有取RGB平均值的,更为常用的是加权平均法,也就是R、G、B的权重不一样:

Gray = R*0.3 + G*0.59 + B*0.11

 

测试一下:

1.准备一种图片:

使用Qt将图片转换为灰度图_第1张图片

2. 测试代码:

使用Qt将图片转换为灰度图_第2张图片

代码很容易理解,循环获取图片的每一个像素的颜色值,再根据公式计算出灰度值,然后将灰色设置到对应的图片对象的相同位置上,最后保存图片即可。

QImage::pixelColor用于获取像素颜色,返回值是QColor对象。 QImage::setPixelColor用于设置像素颜色,参数是位置(x,y)和QColor对象。

 

3. 转换后的图像

你可能感兴趣的:(Qt)