A simple way to capture image through USB camera on windows

一种windows下简单的USB摄像头图像获取方式

Abstract: Usually, the way we capture images by usb camera is not easy, either we should install some software or we should write a lot of code to make it work. Here I found a simple way to deal with it: using the library–videoInput. To introduce it to you, I write a demo program on MFC.

A simple way to capture image through USB camera on windows

随着人工智能的大火,计算机视觉(computer vision)技术也热了起来,在很多所谓的人工智能领域大放光彩,尤其是模式识别,图像分类,而这也少不了对USB摄像头的图像的获取操作,然而我在起初寻找usb摄像头图像的获取方法时竟费了一番周折,通常的做法实在是不方便。

一种常见的方法是用DirectShow, 这里有相关链接https://github.com/5455945/VideoCapture

另一种是用opencv、openGL实现的,网上也有很多相关的代码示例。

但是上面这两种都需要额外安装库,有没有能直接引用lib或者dll就能工作的“绿色”方式,当然是有的:videoinput:

http://www.muonics.net/school/spring05/videoInput/

https://github.com/ofTheo/videoInput

不过github上的demo还是有点麻烦,其实我们想用的一般很简单,就是获取图片,并没有更多的要求,这里我给出一个demo,就是获取usb摄像头的图像字节信息并绘制在对话框上。

主要代码如下:

为了实际可用,demo里另开了个线程完成上述功能,完善了线程同步,如退出通知,公共变量互斥,并完成了图像绘制。

图像绘制代码:

demo示意图:

下载demo请到:

USBCameraDemo.zip

或者:

https://github.com/atp798/BlogStraka/tree/master/USBCameraDemo

发表评论