#include<opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main()
{
Mat a = (Mat_<uchar>(1, 2) << 0, 5);
Mat b = (Mat_<uchar>(1, 2) << 0, 6);
Mat Xor, Or, Not, And;
bitwise_not(a, Not);
cout << "a Not" << Not << endl;
bitwise_and(a, b, And);
bitwise_or(a, b, Or);
bitwise_xor(a, b, Xor);
cout << And << endl;
cout << Or << endl;
cout << Xor << endl;
Mat img = imread("C:/opencv/lena.png");
Mat mark = imread("C:/opencv/white.png");
Mat result;
//bitwise_and(img,mark,result);
Mat img_inv;
bitwise_not(img, img_inv);//取反运算
cvtColor(mark, mark, COLOR_BGR2GRAY);//mark进行灰度化,有多通道转化为单通道
bitwise_not(img, img_inv, mark);
Mat mark_black = imread("C:/opencv/black.png");
min(img, mark_black, img);
img = img + img_inv;
return 0;
}
5对应0000_0101
6对应0000_0110
异或 0000_0011
与 0000_0100
交 0000_0111