C++ opencv之像素操作之逻辑操作(bitwise_and,bitwise_xor,bitwise_or,bitwise_not)

文章目录

  • 一、知识点
  • 二、函数原型
    • 1、按位与操作
    • 2、按位或操作
    • 3、按位异或操作
    • 4、取反操作
    • 5、绘制矩形框操作
  • 三、代码
  • 四、附图
    • 1、按位与操作附图
    • 2、按位或操作附图
    • 3、按位异或操作附图
    • 4、取反操作附图

这篇博客我们来学习像素操作之逻辑操作。

一、知识点

主要的知识点是:
对图像中的位操作:

- bitwise_and    //按位与
- bitwise_xor    //按位异或
- bitwise_or     //按位或

取反操作:

- bitwise_not    //取反

C++ opencv之像素操作之逻辑操作(bitwise_and,bitwise_xor,bitwise_or,bitwise_not)_第1张图片

二、函数原型

1、按位与操作

bitwise_and(InputArray src1, InputArray src2,OutputArray dst, InputArray mask=noArray());//dst = src1 & src2

参数一:输入图片1
参数二:输入图片2
参数三:输出图片

2、按位或操作

void bitwise_or(InputArray src1, InputArray src2,OutputArray dst, InputArray mask=noArray());//dst = src1 | src2

参数一:输入图片1
参数二:输入图片2
参数三:输出图片

3、按位异或操作

void bitwise_xor(InputArray src1, InputArray src2,OutputArray dst, InputArray mask=noArray());//dst = src1 ^ src2

参数一:输入图片1
参数二:输入图片2
参数三:输出图片

4、取反操作

void bitwise_not(InputArray src, OutputArray dst,InputArray mask=noArray());//dst = ~src

参数一:输入图片
参数二:输出图片

5、绘制矩形框操作

rectangle(img2, Point(j,i), Point(j + img4.cols, i + img4.rows), Scalar(255, 255, 0), 2, 8);

参数:
参数一:输入图片
参数二:矩形左上角坐标
参数三:各个点坐标
参数四:颜色
参数五:线条宽度
参数六:线型

三、代码

我们来附一下我们的代码:

void QuickDemo::bitewise_Denmo(Mat &image)
{
	Mat m1 = Mat::zeros(Size(256, 256), CV_8UC3);
	Mat m2 = Mat::zeros(Size(256, 256), CV_8UC3);
	rectangle(m1, Rect(100, 100, 80, 80), Scalar(255, 255, 0), -1, LINE_8, 0);
	rectangle(m2, Rect(150, 150, 80, 80), Scalar(0, 255, 255), -1, LINE_8, 0);
	imshow("m1", m1);
	imshow("m2", m2);
	Mat dst ;
	//bitwise_or(m1, m2, dst);  //按位或操作
	bitwise_and(m1, m2, dst);   //按位与操作
	//bitwise_not(image, dst);  //取反操作
	//bitwise_xor(m1, m2, dst);  //按位异或操作
	imshow("像素位操作", dst);
	
}

代码思路:
我们这代码是创建了m1、m2两个尺寸为(256,256)的8位uchar类型的3通道矩阵,然后用这两个矩阵进行按位与、按位或按位异或、取反操作的,然后用rectangle函数去在这个窗口里绘制矩形,对在两个窗口中绘制的矩形进行上述操作。下面看一下运行结果。

四、附图

1、按位与操作附图

C++ opencv之像素操作之逻辑操作(bitwise_and,bitwise_xor,bitwise_or,bitwise_not)_第2张图片

2、按位或操作附图

C++ opencv之像素操作之逻辑操作(bitwise_and,bitwise_xor,bitwise_or,bitwise_not)_第3张图片

3、按位异或操作附图

C++ opencv之像素操作之逻辑操作(bitwise_and,bitwise_xor,bitwise_or,bitwise_not)_第4张图片

4、取反操作附图

C++ opencv之像素操作之逻辑操作(bitwise_and,bitwise_xor,bitwise_or,bitwise_not)_第5张图片
这篇博客我们就学习像素操作之逻辑操作!
加油吧 阿超没有蛀牙!

你可能感兴趣的:(OpenCV,opencv)