C#操作摄像头实现拍照监控录像功能

  次阅读 作者:智能小宝 来源:互联网 2016-01-19 12:44 我要评论(0)

从正式工作以来一直做的都是基于B/S的Web开发,已经很长时间不研究C/S的东西了,但是受朋友的委托,帮他做一下拍照的这么个小功能。其实类 似的代码网上有很多,但是真的能够拿来运行的估计也没几个。本来是说周末给做的,但是这两天脑子一直很乱,也没静下来,晚上了,再不做明天有点不好意思 啊,只能临时做一个了。在网上找资料自己做的过程中也发现了一些问题,于是拿到博客上来分享一下,这样一来有需要的朋友可以直接拿来用,二来正在研究的遇 到这些问题了可以迎刃而解。

刚开始接触摄像头视频之类的是在大二的时候,那时候因为实验室有一个小项目交到我手上,所以那时候对播放视频之类的了解了一些。那时候的需求是 对已经录下来的监控录像做处理,整个过程是已经不需要自己再去控制录像了,所以相对简单一点。而拍照和摄像是自己控制,所以稍微复杂那么一点点。行了,废 话说到这里,下面进入正题。

还是以往的作风,只实现功能,对界面不做过多的美化,有需要的朋友可以自己动手。比较这年头自己动手,丰衣足食嘛。图1-1是程序的主界面:

图1-1

操作摄像头以及实现拍照功能整个过程主要都是通过一个第三方的组件实现的,名字叫做 AForge ,是国外的组件,所以打开起来有点慢,但是要有耐心啊,目前已经更新到2.2.5版本了。如果不愿意从官网上下载,文章末尾处也给出了相应的下载地址,需 要的话直接拿来用就ok了。程序也很简单,一个WinForm页面,添加一下对Aforge的引用就可以了,但是这个过程中会引用一些其他的dll,有些 不是太常用,所以在这里对引用的dll也做了截图(图1-2),在自己做的过程中参照一下即可。

图1-2

上图1-1中间部分是用来实时显示摄像头开启后获取到的内容,是一个自定义控件。这里得说明一下,将AForge.Controls.dll拖 拽到左侧的工具箱区域,然后就出来自定义控件了。这里顺便说明一下,我们平时自己开发的自定义控件也可以通过这种方式来给别人用。前台都准备好了之后我们 来开始分析后台代码。

整个的思路是先找到电脑上的摄像头设备,然后选择我们需要操作的设备,然后在拍照或者摄像。今天由于时间关系仅仅只是实现拍照,下次再做摄像的 功能,实现之后也会一样分享在这里的,希望有需要的朋友关注。

当Form加载的时候,我们监听一下其Load事件,将检测到的摄像头设备添加到后边的ComboBox中供用户选择,关键代码如下:

Private void Form1_Load(object sender, EventArgs e)

{

try

{

// 枚举所有视频输入设备

videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

if (videoDevices.Count == 0)

throw new ApplicationException();

foreach (FilterInfo device in videoDevices)

{

tscbxCameras.Items.Add(device.Name);

}

tscbxCameras.SelectedIndex = 0;

}

catch (ApplicationException)

{

tscbxCameras.Items.Add("No local capture devices");

videoDevices = null;

}

}

当用户选择某一摄像头设备再点击连接的时候,我们打开摄像头,并对其进行初始化,关键代码:

//连接摄像头

private void CameraConn()

{

VideoCaptureDevice videoSource = new VideoCaptureDevice(videoDevices[tscbxCameras.SelectedIndex].MonikerString);

videoSource.DesiredFrameSize = new System.Drawing.Size(320, 240);

videoSource.DesiredFrameRate = 1;

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...