学习图像处理知识---Emgu3.4 image类学习(二)
图像逻辑运算和基本数学运算
1.加法和减法 采用方法 (图+、-数值)或(图+.-图)(如果图片加减,一定要注意尺寸大小一致否则会报错);
a2 = new Image<Bgr, byte>((Bitmap)pictureBox2.Image);
a3=new Image< Bgr, byte> ((Bitmap)pictureBox1.Image)
a2 = a2 + 50;(a2=a2-50)变黑 a2=a2+a3;a2=a2-a3;
pictureBox4.Image = a2.Bitmap;pictureBox4.Refresh(); 图片变得越来越来亮,如过用减法,变得黑。第三个图片相加,第四相减。
原图
2.乘法和除法方法(单独乘或除一个double 数比较简单类如加减法,这里只介绍ConvolutionKernelF用法)
public class ConvolutionKernelF : Matrix<float>
float[,] fou = new float[50, 50]; //红色数值越大越模糊
for (int i = 0; i <50; i++)
for (int j = 0; j <50; j++)
fou[i, j] = 1;
ConvolutionKernelF a9 = new ConvolutionKernelF(fou);
Emgu.CV.Image<Bgr, float> a10 = (a2 * a9);//乘法后类型会发生变化 如要不变在定义的时候就Image<Bgr, float>
// pictureBox4.Image = (a2/0.51).Bitmap; //除小于1小数图片变亮,大于1变黑,乘法相反
pictureBox4.Image = (a10).Bitmap;
pictureBox4.Refresh();
逻辑运算and, or ,complement(非)not ,如果图片之间进行逻辑的话,尺寸一定要相同。跟普通double值也能逻辑
pictureBox4.Image = (~a2).Bitmap;
pictureBox4.Image = (a2&a3).Bitmap;
pictureBox4.Image = (a2|a3).Bitmap;