反差图像就是用原图像素所能表达的最大像素值减去原图像素值之后所形成的图像。由于本程序采用的是Vec3b和uchar类型的图像,所以每通道的最大值为255,255 - 原值 = 反差值。
在本程序中,将采用两种方法实现反差图像,一种是用Mat对象中的at函数来遍历每一个像素,采用“255-原值= 反差值”公式实现,另一种直接使用bitwise_not函数实现。
具体实现代码如下:
#include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main(int argc, char**argv)
{
//读入原图
Mat src = imread("1.jpg",0);//第二个参数:<0 表示加载原图,不做任何改变;
//=0表示把原图作为灰度图像加载进来; (>0)