opencv4自学笔记
首先,明白一点:两个图像像素的逻辑运算,是一一对应的,一幅图像每个像素与另一幅图像对应位置的像素进行逻辑运算。
一、bitwise_and(图像1, 图像2, 目标图像)-------对图像1,2执行‘与’操作
先在两个黑色图像中的不同位置,绘制相同大小的彩色图像,如下:
rectangle(image1, Rect(100, 100, 80, 80), Scalar(256, 256, 0), -1, LINE_8);
rectangle(image2, Rect(150, 150, 80, 80), Scalar(0, 256, 256), -1, LINE_8);
bitwise_and(image1, image2, dst);
考虑一下三点:
1, 取m1图中左上角的一个黑色像素,其灰度值(0,0,0),和m2图像一个黑色像素(0,0,0),结果自然是黑色(0,0,0)
2, 取m1图中左上角的一个黑色像素,其灰度值(0,0,0),和m2图像一个黄色像素(0,256,256),结果自然是黑色(0,0,0)。反之同理。
3.对于相交部分,(256, 256, 0),和(0, 256, 256),结果(0,256,0)绿色。
二、bitwise_or(图像1, 图像2, 目标图像)-------对图像1,2执行‘或’操作
二、bitwise_xor(图像1, 图像2, 目标图像)-------对图像1,2执行‘异或’操作
异或:相同为0,不同为1
三、‘非’操作就是对一幅图像正常取‘反’,这里就不演示了