1,图片相与(求交集)Cv2.BitwiseAnd
Mat mat = new Mat(@"I:\OpenCvSharp学习\黑底白框矩形.png", ImreadModes.AnyColor);
Mat mat1 = new Mat(@"I:\OpenCvSharp学习\黑底白框椭圆形.png", ImreadModes.AnyColor);
Mat Outmat1 = new Mat();
Cv2.BitwiseAnd(mat,mat1,Outmat1);
Window window1 = new Window("源图像1", WindowMode.Normal, mat);
Window window2 = new Window("源图像2", WindowMode.Normal, mat1);
Window window3 = new Window("输出图像", WindowMode.Normal, Outmat1);
Cv2.WaitKey(0);
![image.png](/uploads/projects/xghboy@csharp/c64afe3c1210b191a7970476c030d4ed.png)
2,图片相或(求并集)BitwiseOr
Mat mat = new Mat(@"I:\OpenCvSharp学习\黑底白框矩形.png", ImreadModes.AnyColor);
Mat mat1 = new Mat(@"I:\OpenCvSharp学习\黑底白框椭圆形.png", ImreadModes.AnyColor);
Mat Outmat1 = new Mat();
Cv2.BitwiseOr(mat,mat1,Outmat1);
Window window1 = new Window("源图像1", WindowMode.Normal, mat);
Window window2 = new Window("源图像2", WindowMode.Normal, mat1);
Window window3 = new Window("输出图像", WindowMode.Normal, Outmat1);
Cv2.WaitKey(0);
![image.png](/uploads/projects/xghboy@csharp/3c471f6e27a06030b98465d913bd54da.png)
3,图片非运算(求补集)BitwiseNot
Mat mat = new Mat(@"I:\OpenCvSharp学习\黑底白框矩形.png", ImreadModes.AnyColor);
Mat Outmat1 = new Mat();
Mat Outmat2 = new Mat();
Cv2.BitwiseNot(mat,Outmat1);
Window window1 = new Window("源图像1", WindowMode.Normal, mat);
Window window3 = new Window("输出图像", WindowMode.Normal, Outmat1);
Cv2.WaitKey(0);
![image.png](/uploads/projects/xghboy@csharp/fe883a3173ce2b2cf5a204a9a83ffaa4.png)
4,图片异或运算
Mat mat = new Mat(@"I:\OpenCvSharp学习\黑底白框矩形.png", ImreadModes.AnyColor);
Mat mat1 = new Mat(@"I:\OpenCvSharp学习\黄底黑框.png", ImreadModes.AnyColor);
Mat Outmat1 = new Mat();
Mat Outmat2 = new Mat();
Cv2.BitwiseXor(mat,mat1,Outmat1);
Window window1 = new Window("源图像1", WindowMode.Normal, mat);
Window window2 = new Window("源图像2", WindowMode.Normal, mat1);
Window window3 = new Window("输出图像", WindowMode.Normal, Outmat1);
Cv2.WaitKey(0);
![image.png](/uploads/projects/xghboy@csharp/88da94f9c96939a7b807930a91645405.png)