笔记本上的摄像头单用怎么用?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了笔记本上的摄像头单用怎么用?相关的知识,希望对你有一定的参考价值。
参考技术A 通常电脑上都有单独控制摄像头的软件,找到打开就可以使用摄像头照相录像了 参考技术B 安装过摄相头驱动的可以在我的电脑
里面
有个USB
2.0
VGA
UVC
WebCam
(也可能是其他名称)
打开就可以单独使用了
opencv 用摄像头录制视频并储存的问题
代码如下
#include "cv.h"
#include "highgui.h"
#include <iostream>
#include <Windows.h>
using namespace std;
int main(int argc,int* argv)
DWORD a,b;
CvCapture* capture;
capture=cvCreateCameraCapture(-1);
assert(capture!=NULL);
IplImage* frame;
double fps=cvGetCaptureProperty(capture,CV_CAP_PROP_FPS);
CvVideoWriter* writer=cvCreateVideoWriter("New.avi",CV_FOURCC('X','V','I','D'),5,cvSize(640,480));
cvNamedWindow("Video");
a=GetTickCount();
while (1)
frame=cvQueryFrame(capture);
if (!frame) break;
cvShowImage("Video",frame);
cvWriteFrame(writer,frame);
b=GetTickCount();
cout<<b-a<<endl;
if (cvWaitKey(200)>0) break;
a=b;
cvReleaseImage(&frame);
cvReleaseVideoWriter(&writer);
cvDestroyWindow("Video");
return 0;
其中a表示录制上一帧录制完毕的时间 b表示这一帧录制完毕的时间。
但是录制下来的帧率只能在5以下
同样的程序
当我 cvWaitKey(1)时储存并显示一张图耗费170ms左右
但是cvWaitKey(200)也只耗费203ms
cvWaitKey(2000)耗费2012ms
为什么耗时会这么奇怪 在等待1ms时耗时170ms 而等待200ms时只耗时203ms?
还有 如何提高帧率 如果我将cvCreaterVideoWriter里的帧率调的更高的话 视频就和快进了一样
改变cvCreaterVideoWriter里面的帧率并将cvWaitKey的时间改为1000/帧率追问
但我设为cvWaitKey(1)他运行还是要170ms啊 缩不短了 每秒五帧的视频看起来很难受的
追答这可能是因为你的其他地方调用消耗时间太多了,比如你的主板性能不佳,抓取一帧影像要耗费一段时间,写入也要时间的
cvWaitKey精度是不高,但是也不会像你说的那样很低
你可以用缓冲区,多线程等方法来提升帧频
以上是关于笔记本上的摄像头单用怎么用?的主要内容,如果未能解决你的问题,请参考以下文章