电脑摄像头是怎么提取图像的
发布网友
发布时间:2022-04-23 17:21
我来回答
共1个回答
热心网友
时间:2023-10-10 17:29
C语言本身是无法直接控制外设的。但可以通过各种应用编程接口(api),间接调用外部设备。例如opencv库。
OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。该库也有大量的Python, Java and MATLAB/OCTAVE (版本2.5)的接口。这些语言的API接口函数可以通过在线文档获得。如今也提供对于C#,Ch, Ruby的支持。
例程:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "cv.h"
#include "highgui.h"
int main(int argc, char** argv) {
cvNamedWindow("win");
CvCapture* capture = cvCreateCameraCapture(0); //创建并获取摄像设备
IplImage* frame;
while(1) {
frame = cvQueryFrame(capture); //创建并获取一张摄像截图
if(!frame) break; //如果失败终止循环
cvShowImage("win", frame); //在一个"win"窗口,并当中显示该截图
char c = cvWaitKey(50);
if(c==27) break;
}
cvReleaseCapture(&capture); //释放摄像设备
cvDestroyWindow("win"); //释放窗口"win"
return 0;
}