1:加法运算

加法运算要求:图片有相同的大小以及位深度
加法运算分为直接相加和权重相加
代码如下:

  1. Mat mat = new Mat(@"I:\OpenCvSharp学习\Temp\Test\67.bmp", ImreadModes.AnyColor);
  2. Mat mat1 = new Mat(@"I:\OpenCvSharp学习\Temp\Test\12.bmp", ImreadModes.AnyColor);
  3. Mat Outmat1 = new Mat();
  4. Mat Outmat2 = new Mat();
  5. Cv2.Add(mat1, mat, Outmat1);//直接相加
  6. Cv2.AddWeighted(mat,0.5,mat1,5,1.0,Outmat2);//权重相加
  7. Window window1 = new Window("源图像1", WindowMode.Normal, mat);
  8. Window window2 = new Window("源图像2", WindowMode.Normal, mat1);
  9. Window window3 = new Window("输出图像", WindowMode.Normal, Outmat1);
  10. Window window4 = new Window("输出图像1", WindowMode.Normal, Outmat2);
  11. Cv2.WaitKey(0);

image.png

减法运算

减法运算要求:图片有相同的大小以及位深度
减法分为:直接相减与相减后取绝对值
代码如下:

  1. Mat mat = new Mat(@"I:\OpenCvSharp学习\Temp\Test\67.bmp", ImreadModes.AnyColor);
  2. Mat mat1 = new Mat(@"I:\OpenCvSharp学习\Temp\Test\12.bmp", ImreadModes.AnyColor);
  3. Mat Outmat1 = new Mat();
  4. Mat Outmat2 = new Mat();
  5. Cv2.Subtract(mat,mat1,Outmat1);
  6. Cv2.Absdiff(mat, mat1, Outmat2);
  7. Window window1 = new Window("源图像1", WindowMode.Normal, mat);
  8. Window window2 = new Window("源图像2", WindowMode.Normal, mat1);
  9. Window window3 = new Window("输出图像", WindowMode.Normal, Outmat1);
  10. Window window4 = new Window("输出图像1", WindowMode.Normal, Outmat2);
  11. Cv2.WaitKey(0);

乘除运算

  1. Mat mat = new Mat(@"I:\OpenCvSharp学习\Temp\Test\67.bmp", ImreadModes.AnyColor);
  2. Mat mat1 = new Mat(@"I:\OpenCvSharp学习\Temp\Test\12.bmp", ImreadModes.AnyColor);
  3. Mat Outmat1 = new Mat();
  4. Mat Outmat2 = new Mat();
  5. Cv2.Multiply(mat,mat1,Outmat1);//矩阵相乘
  6. Cv2.Divide(mat, mat1, Outmat2);//矩阵相除
  7. Window window1 = new Window("源图像1", WindowMode.Normal, mat);
  8. Window window2 = new Window("源图像2", WindowMode.Normal, mat1);
  9. Window window3 = new Window("输出图像", WindowMode.Normal, Outmat1);
  10. Window window4 = new Window("输出图像1", WindowMode.Normal, Outmat2);
  11. Cv2.WaitKey(0);

image.png