彩色图像,像素的逻辑运算(opencv4)

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);

彩色图像,像素的逻辑运算(opencv4)_第1张图片

 考虑一下三点:

        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执行‘或’操作

彩色图像,像素的逻辑运算(opencv4)_第2张图片

二、bitwise_xor(图像1, 图像2, 目标图像)-------对图像1,2执行‘异或’操作

        异或:相同为0,不同为1

 彩色图像,像素的逻辑运算(opencv4)_第3张图片

三、‘非’操作就是对一幅图像正常取‘反’,这里就不演示了 

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