Emgu.CV(二)
小实例
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 #region Emgu.Cv 6 string imgPath = @"D:\timg.jpg"; 7 //从文件中读取图像 8 var image = CvInvoke.Imread(imgPath, LoadImageType.Color); 9 //创建一个显示窗口 10 CvInvoke.NamedWindow("AJpg", NamedWindowType.Normal); 11 //显示图片 12 CvInvoke.Imshow("AJpg", image); 13 //等待按键输入 14 CvInvoke.WaitKey(0); 15 CvInvoke.DestroyWindow("AJpg"); 16 image.Dispose(); 17 #endregion 18 Console.Read(); 19 } 20 }
基本方法
一.创建图像
Image<Bgr,Byte> image=new Image<Bgr,Byte>(400,400,new Bgr(255,0,0));
二.读入图像
Image<Bgr, Byte> image = new Image<Bgr, byte>(@"D:\youyi-003.jpg");
三.从.Net Bitmap对象创建图像
Image<Bgr, Byte> image = new Image<Bgr, Byte>(bmp);
四.像素的获取
彩图时:
Bgr _Bgr = _Image[0, 0];//获取_Image图像[0, 0]处的bgr像素值;
灰度图时:
Gray _Gray = _image[0, 0]];//获取_Gray图像[0, 0]处的gray像素值;
五、像素的赋值
//按位置指定或写入像素值 //彩图 _Image[0, 0] = new Bgr(Color.Red); //灰度图 _image[0, 0] = new Gray(200); //按数据属性指定或写入像素值 //彩图时 Color R = Color.Red; _Image.Data[0,0,2] = R.R; //红 _Image.Data[0,0,1] = R.G; //绿 _Image.Data[0,0,0] = R.B; //蓝 //灰度图时 _image[0, 0] = new Gray(200);
六、像素的转换
// BGR转化成int(把value.Red替换成数字) //Color _colour = Color.FromArgb((int)value.Red, (int)value.Blue, (int)value.Green); Color _colour = Color.FromArgb(100, 200, 250); //Gray 转化成 int int _intensity = (int)_Gray.Intensity; //直接用数据属性转换 //Colour Color _colour1 = Color.FromArgb(_Image.Data[0, 0, 0], _Image.Data[0, 0, 1], _Image.Data[0, 0, 2]); //Gray Image int _intensity1 = _image.Data[0, 0, 0];
七、图像显示
//使用ImageBox;
Image<Bgr, Byte> _Image = new Image<Bgr, byte>(Openfile.FileName); imageBox1.Image = _image;
//转换为位图使用windows form中的PictureBox控件。
Image<Bgr, Byte> _Image = new Image<Bgr, byte>(Openfile.FileName);
pictureBox1.Image = _Image.ToBitmap();
小实例
图片反转
1.WinForm中引入emgu.CV.UI.dll 引入工具栏中
2.编写代码
1 private void Form1_Load(object sender, EventArgs e) 2 { 3 //从文件中加载图片 4 Image<Bgr, Byte> image = new Image<Bgr, byte>(@"D:\timg.jpg"); 5 imageBox1.Image = image; 6 } 7 8 private void btn_Flip_Click(object sender, EventArgs e) 9 { 10 if (imageBox1.Image!=null) 11 { 12 var image = (Image<Bgr, Byte>)imageBox1.Image; 13 //图片反转 14 image._Flip(FlipType.Horizontal); 15 imageBox1.Image = image; 16 } 17 }