原博客:http://blog.csdn.net/shenlanse8805/article/details/12523783
只是想在博客中记录自己学习的笔记!
代码:利用opencv库进行视频获取,并截取视频的照片。
API: cvCaptureFrom()函数,函数cvQueryFrame从摄像头或者文件中抓取一帧,然后解压并返回这一帧。 这个函数仅仅是函数cvGrabFrame和 函数cvRetrieveFrame在一起调用的组合。 返回的图像不可以被用户释放或者修改。
cvCaptureFromCAM(int index )函数:index 0/-1 调用笔记本自带摄像头
#include <cstdio>
#include <highgui.h>
int main()
{
IplImage *pImg = NULL;
CvCapture *cap = cvCaptureFromCAM(0);
char fileName[100];
char key;
int count = 0;
while(1)
{
pImg = cvQueryFrame(cap);
cvFlip(pImg, NULL, 1); //
int main()
{
IplImage *pImg = NULL;
CvCapture *cap = cvCaptureFromCAM(0);
char fileName[100];
char key;
int count = 0;
while(1)
{
pImg = cvQueryFrame(cap);
cvFlip(pImg, NULL, 1); // 水平翻转图像,像照镜子一样,不想要这个效果可以去掉此句
key = cvWaitKey(50);
if(key == 27) break; // 按ESC 键退出程序
if(key == 'c') // 按c 键拍照
{
sprintf(fileName, "Picture %d.jpg", ++count); // 生成文件名
cvSaveImage(fileName, pImg);
cvXorS(pImg, cvScalarAll(255), pImg); // 将拍到的图像反色(闪一下形成拍照效果)
cvShowImage("Camera",pImg);
cvWaitKey(200); // 反色图像显示ms
}
cvShowImage("Camera",pImg);
}
cvReleaseCapture(&cap);
return 0;
}