Emgu.CV(二)

小实例

 1   class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             #region Emgu.Cv
 6             string imgPath = @"D:	img.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 }
View Code

基本方法

一.创建图像

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:	img.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         }
View Code

 

原文地址:https://www.cnblogs.com/xiaoxin121/p/6878564.html