• 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

     

  • 相关阅读:
    巧用加密方法保障电子邮件系统安全 狼人:
    网管员注意:保障邮件安全的七条措施 狼人:
    全面剖析DNS 0DAY攻击、威胁以及防治 狼人:
    简述:电子邮件安全发展 狼人:
    IE漏洞致数百万用户中招 快用瑞星卡卡打补丁 狼人:
    警惕可执行文件:三类危险TXT类型文件 狼人:
    安全使用电子邮件十三法 狼人:
    提高IE和Email的安全性的四步骤 狼人:
    了解电子邮件加密 保证隐私内容安全 狼人:
    防不胜防 了解DNS缓存中毒攻击原理 狼人:
  • 原文地址:https://www.cnblogs.com/xiaoxin121/p/6878564.html
Copyright © 2020-2023  润新知