zoukankan      html  css  js  c++  java
  • 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

     

  • 相关阅读:
    LeetCode 461. Hamming Distance
    LeetCode 442. Find All Duplicates in an Array
    LeetCode 448. Find All Numbers Disappeared in an Array
    LeetCode Find the Difference
    LeetCode 415. Add Strings
    LeetCode 445. Add Two Numbers II
    LeetCode 438. Find All Anagrams in a String
    LeetCode 463. Island Perimeter
    LeetCode 362. Design Hit Counter
    LeetCode 359. Logger Rate Limiter
  • 原文地址:https://www.cnblogs.com/xiaoxin121/p/6878564.html
Copyright © 2011-2022 走看看