一、图像的加减乘除


// 1. 加载原图1
var image1 = new Image<Bgr, byte>("bird1.png");
PreviewImage1 = new WriteableBitmap(Bitmap2BitmapImage(image1.Bitmap));
// 2. 加载原图2
var image2 = new Image<Bgr, byte>("bird2.png");
PreviewImage2 = new WriteableBitmap(Bitmap2BitmapImage(image2.Bitmap));
// 3. 图像的加法
var image3 = new Image<Bgr, byte>(image1.Size);
CvInvoke.Add(image1, image2, image3);
// CvInvoke.AddWeighted(image1, 0.5, image2, 0.5, 0, image3); // 按权重加
PreviewImage3 = new WriteableBitmap(Bitmap2BitmapImage(image3.Bitmap));
// 4. 图像的减法
var image4 = new Image<Bgr, byte>(image1.Size);
CvInvoke.Subtract(image1, image2, image4);
// CvInvoke.AbsDiff(image1, image2, image4); // 相减后取绝对值
PreviewImage4 = new WriteableBitmap(Bitmap2BitmapImage(image4.Bitmap));
// 5. 图像的乘法
var image5 = new Image<Bgr, byte>(image1.Size);
CvInvoke.Multiply(image1, image2, image5);
PreviewImage5 = new WriteableBitmap(Bitmap2BitmapImage(image5.Bitmap));
// 6. 图像的除法
var image6 = new Image<Bgr, byte>(image1.Size);
CvInvoke.Divide(image1, image2, image6);
PreviewImage6 = new WriteableBitmap(Bitmap2BitmapImage(image6.Bitmap));
二、图像的逻辑运算


// 1. 加载原图1
var image1 = new Image<Bgr, byte>("bird1.png");
PreviewImage1 = new WriteableBitmap(Bitmap2BitmapImage(image1.Bitmap));
// 2. 加载原图2
var image2 = new Image<Bgr, byte>("bird2.png");
PreviewImage2 = new WriteableBitmap(Bitmap2BitmapImage(image2.Bitmap));
// 3. 图像相与
var image3 = new Image<Bgr, byte>(image1.Size);
CvInvoke.BitwiseAnd(image1, image2, image3);
PreviewImage3 = new WriteableBitmap(Bitmap2BitmapImage(image3.Bitmap));
// 4. 图像相或
var image4 = new Image<Bgr, byte>(image1.Size);
CvInvoke.BitwiseOr(image1, image2, image4);
PreviewImage4 = new WriteableBitmap(Bitmap2BitmapImage(image4.Bitmap));
// 5. 图像取反
var image5 = new Image<Bgr, byte>(image1.Size);
CvInvoke.BitwiseNot(image1, image5);
PreviewImage5 = new WriteableBitmap(Bitmap2BitmapImage(image5.Bitmap));
// 6. 图像亦或
var image6 = new Image<Bgr, byte>(image1.Size);
CvInvoke.BitwiseXor(image1, image2, image6);
PreviewImage6 = new WriteableBitmap(Bitmap2BitmapImage(image6.Bitmap));

这篇博客介绍了如何使用OpenCV库进行基本的图像操作,包括图像的加法、减法、乘法、除法以及逻辑运算(如相与、相或、取反和亦或)。通过示例代码展示了如何将两个图像进行这些操作,并展示结果,为图像处理和分析提供了基础操作的实例。
&spm=1001.2101.3001.5002&articleId=121644034&d=1&t=3&u=a81316f82a10475bb1c3cda509d6255b)
1万+

被折叠的 条评论
为什么被折叠?



