灰度图像的生成办法是由彩色图像的三个通道的像素值取均值后赋给单通道的灰度图像值:
C++代码实现
(1)opencv的API代码如下:
1.输入图像(彩色) 2.自定义的输出图像 3.方法,BGR —GRAY
(2)不用opencvAPI代码实现:
生成一个灰度大小的矩阵:
核心步骤:
RGB到灰度图转换公式:Y' = 0.299 R + 0.587 G + 0.114 B 也可以用 Y=(R+G+B)/3
代码如下:
效果图:
二、图像灰度值反转:
图像的反转原理很简单,每个像素的色度的范围为(0-255)彩色为r,g,b,三个通道。灰度图像只有一个通道即黑白(0-255)。
颜色的反转:就是用255-原来的像素值=新的像素值 从而达到像素翻转的效果。
与上面就一行代码变化:替换就行了
代码如下:
效果:
反彩色图像原理一样这里就不在展示了。
二、图像的对比度亮度调整:
这里首先给出一个公式:F= α(f) + β f为原像素值, F为变化后的像素值。
其中 α控制的为对比度,β控制亮度。
核心操作:
彩色
灰度
原代码如下
char output_title[] = "contrast and brightness change demo"; namedWindow(output_title, CV_WINDOW_AUTOSIZE); imshow(output_title, dst);
waitKey(0); return 0;}
效果
α=1,β=100, 整体提高亮度。
α=1.8,β=0,提高图片的对比度
三、两张图片的适应叠加
f0表示图一的像素,f1表示图二的像素。
核心操作:
addWeight API (图像1, α, 图像2, 1-α, 0.0, 生成图像 )
THE END