AForge.NET 入门

一、AForge.NET简介

       AForge.NET是一个专门为开发者和研究者基于C#框架设计的,这个框架提供了不同的类库和关于类库的资源,还有很多应用程序例子,包括计算机视觉与人工智能,图像处理,神经网络,遗传算法,机器学习,机器人等领域。


       这个框架由一系列的类库组成。主要包括有:

       AForge.Imaging —— 一些日常的图像处理和过滤器

       AForge.Vision —— 计算机视觉应用类库

       AForge.Neuro —— 神经网络计算库AForge.Genetic -进化算法编程库

       AForge.MachineLearning —— 机器学习类库

       AForge.Robotics —— 提供一些机器人的工具类库

       AForge.Video —— 一系列的视频处理类库

       AForge.Fuzzy —— 模糊推理系统类库

       AForge.Controls—— 图像,三维,图表显示控件


二、下载与添加AForge引用

 

(1)解压缩下载的AForge类库——AForge.NET Framework-2.2.5.zip(为了便于使用,应放于容易找到的路径下)

(2)在Visual Studio中新建WinForm程序(Windows窗体应用程序),在新建的项目中添加Aforge.NET的引用

          Step1:解决方案资源管理器中,右键“引用”--> “添加引用”

image.png

 Step 2:在“引用管理器”中点击右下角的“浏览”,找到Aforge.NET的路径,进入\Release文件夹下,选择必要的.dll文件添加到项目中(可参照前面介绍过的Aforge.NET类库的组成)

image.png

Step 3:点击“确定”,完成类库引用的添加

image.png

(3)窗体的后台代码中添加有关于Aforge必要的using引用


例如:

using AForge.Video;

using AForge.Video.DirectShow;

三、示例之使用pictureBox控件显示获取的位图

(1)在Visual Studio中创建一个WinForm应用程序,界面中添加一个pictureBox控件和一个按钮Button,如下图所示:

image.png

代码:

publicpartialclassForm1 : Form
 {
        //视频输入设备(摄像头)的集合
        publicFilterInfoCollection Cameras = null;
        //本程序使用的那个摄像头
        publicVideoCaptureDevice Cam =null;

 
        ///<summary>
        ///窗体的构造函数:
        /// Load事件用于在加载窗体时获取摄像头设备
        /// FormClosed事件用于在直接关闭窗体时关闭摄像头,释放资源
        ///</summary>
        public Form1() {

            InitializeComponent();
            this.Load += Form1_Load;
            this.FormClosed +=Form1_FormClosed;
        }
       

        ///<summary>
        ///窗体构造函数的Load事件处理程序
        ///用于获取摄像头设备
        ///</summary>
        ///<paramname="sender"></param>
        ///<paramname="e"></param>
        privatevoid Form1_Load(object sender, EventArgs e) {
            btn1.Enabled =false;
            try {
                //1、获取并枚举所有摄像头设备
                Cameras = newFilterInfoCollection(FilterCategory.VideoInputDevice);
                //2、判断设备个数,选择某一设备
                if (Cameras.Count >0) {
                    btn1.Enabled =true;
                    Cam = newVideoCaptureDevice(Cameras[0].MonikerString);
                    Cam.NewFrame +=Cam_NewFrame;
                } else {
                    MessageBox.Show("未找到视频输入设备!");
                }
            } catch (Exception ex) {
                MessageBox.Show(ex.ToString());
            }
        }

 

        ///<summary>
        ///摄像头设备Cam的NewFrame事件处理程序
        ///用于实时显示捕获的视频流
        ///</summary>
        ///<paramname="sender"></param>
        ///<paramname="eventArgs"></param>
        privatevoid Cam_NewFrame(object sender, NewFrameEventArgs eventArgs) {
            pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();
        }

        ///<summary>
        ///点击按钮的事件处理程序
        ///用于控制摄像头的开启、关闭
        ///</summary>
        ///<paramname="sender"></param>
        ///<paramname="e"></param>
        privatevoid btn1_Click(object sender, EventArgs e) {
            if (btn1.Text =="开启摄像头") {
                btn1.Text = "关闭摄像头";
                Cam.Start();
            } else {
                btn1.Text = "开启摄像头";
                Cam.Stop();
            }
        }

 

        ///<summary>
        ///在关闭窗体的事件处理程序中,释放摄像头
        ///</summary>
        ///<paramname="sender"></param>
        ///<paramname="e"></param>
        privatevoid Form1_FormClosed(object sender, FormClosedEventArgs e) {
            if (Cam !=null &&Cam.IsRunning) {
                Cam.Stop();
            }
        }
    }

(3)运行效果

image.png


————————————————

版权声明:本文为CSDN博主「Kaiyh」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/iwbfaith/article/details/54838427


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864