本文主要是介绍Qt+OpenCV联合开发(十二)--图像像素的逻辑操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、基本知识
对图像中的位操作:
- bitwise_and //按位与
- bitwise_or //按位或
- bitwise_xor //按位异或取反操作:- bitwise_not
二、函数原型
1、逻辑操作——bitwise_and 、 bitwise_or 、 bitwise_xor、bitwise_not函数
1、 bitwise_and 、 bitwise_or 、 bitwise_xor 的参数都一样:
参数一:输入图片1
参数二:输入图片2
参数三:输出图片2、bitwise_not 的参数:
参数一:输入图片
参数二:输出图片
2、绘制矩形框——rectangle函数
参数一:输入的图片
参数二:矩形的坐标(左上角坐标和宽高)
参数三:矩形的颜色
参数四:线条宽度(小于0表示填充,大于0表示绘制矩形,这里为-1)
参数五:要消灭锯齿的不同的绘制方法,要么不管这个锯齿,要么就是管这个锯齿,进行四邻域或者八邻域的绘制,LINE_AA(处理的像素点最多,但速度响应变慢(反锯齿))、LINE_8(推荐)、LINE_4
参数六:中心坐标或者半径坐标的小数位数,默认为0
三、实现效果
1、位操作与
2、位操作或
3、取反操作
4、异或操作
四、代码
void test1::bit_operate(Mat &image)
{Mat m1 = Mat::zeros(Size(256,256),CV_8UC3);Mat m2 = Mat::zeros(Size(256,256),CV_8UC3);//Scalar为矩形的颜色,-1表示填充,大于0表示绘制矩形//创建了m1、m2两个尺寸为(256,256)的8位uchar类型的3通道矩阵rectangle(m1,Rect(100,100,80,80),Scalar(186,85,211),-1,LINE_8,0);//绘制矩形rectangle(m2,Rect(150,150,80,80),Scalar(30,144,255),-1,LINE_8,0);imshow("rectangle M1",m1);imshow("rectangle M2",m2);Mat dst;//对两个窗口中绘制的矩形进行以下操作
// bitwise_and(m1, m2, dst);//位操作与
// bitwise_or(m1, m2, dst);//位操作或bitwise_not(image, dst);//取反操作bitwise_xor(m1, m2, dst);//异或操作imshow("bitwise_xor",dst);
}
原创不易,转载请注明出处:
https://blog.csdn.net/hml111666/article/details/122730371
这篇关于Qt+OpenCV联合开发(十二)--图像像素的逻辑操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!