
想用opencv打开笔记本电脑摄像头并从视频中提取图像,单摄像头打开后图像不显示。
#include"highgui.h"//包含opencv库头文件#include"cv.h"intmain(intargc,char**argv){//主函数cvNam...
#include "highgui.h"//包含opencv库头文件
#include "cv.h"
int main( int argc, char** argv ) {//主函数
cvNamedWindow( "Example2", CV_WINDOW_AUTOSIZE );//创建窗口,(名字,默认大小)
CvCapture *capture = NULL;// 视频获取结构,用来作为视频获取函数的一个参数
capture = cvCreateCameraCapture(0);//打开摄像头,从摄像头中获取视频
IplImage* frame;//申请IplImage类型指针,就是申请内存空间来存放每一帧图像
while(1) {
frame = cvQueryFrame( capture );// 从摄像头中抓取并返回每一帧
if( !frame ) break;//如果抓取帧为空 break 打破循环否则将抓取的那一帧显示在创建的窗口上
cvShowImage( "Example2", frame );//在窗口上显示每一帧
char c = cvWaitKey(33);//延时,每秒钟约33帧;符合人眼观看速度;
if( c == 27 ) break;//由于是死循环,而且没有控制台,当按下键盘esc键,将按键的ASCII值给C,如果C为ESC(ASCII 为27)循环退出退出循环;
}
cvReleaseCapture( &capture );//释放内存;
cvDestroyWindow( "Example2" );//销毁窗口
return 0;
}
应该是这个函数的问题capture = cvCreateCameraCapture(0 );但换用capture = cvCaptureFromCAM(-1);也不行,
求助。 展开
#include "cv.h"
int main( int argc, char** argv ) {//主函数
cvNamedWindow( "Example2", CV_WINDOW_AUTOSIZE );//创建窗口,(名字,默认大小)
CvCapture *capture = NULL;// 视频获取结构,用来作为视频获取函数的一个参数
capture = cvCreateCameraCapture(0);//打开摄像头,从摄像头中获取视频
IplImage* frame;//申请IplImage类型指针,就是申请内存空间来存放每一帧图像
while(1) {
frame = cvQueryFrame( capture );// 从摄像头中抓取并返回每一帧
if( !frame ) break;//如果抓取帧为空 break 打破循环否则将抓取的那一帧显示在创建的窗口上
cvShowImage( "Example2", frame );//在窗口上显示每一帧
char c = cvWaitKey(33);//延时,每秒钟约33帧;符合人眼观看速度;
if( c == 27 ) break;//由于是死循环,而且没有控制台,当按下键盘esc键,将按键的ASCII值给C,如果C为ESC(ASCII 为27)循环退出退出循环;
}
cvReleaseCapture( &capture );//释放内存;
cvDestroyWindow( "Example2" );//销毁窗口
return 0;
}
应该是这个函数的问题capture = cvCreateCameraCapture(0 );但换用capture = cvCaptureFromCAM(-1);也不行,
求助。 展开
3个回答
展开全部
您好
Premiere、会声会影、After Effects等非编软件可以把视频拆解成序列图片,可是不推荐这种操作方法来获得图片。
截图质量不保证所以你已经否定。
有一种方法比较简单,效果效率都可靠。
就是用播放视频的软件捕获(捕获和截图有质的不同,截图是抓屏幕的画面,捕获是提取视频的画面),有这个功能的播放器很多,值得推荐的是kmplayer这个播放器。
播放视频有右键点击画面在菜单中就有捕获选项,
捕获》画面高级捕获》按需设定然后播放视频》点开始。
Premiere、会声会影、After Effects等非编软件可以把视频拆解成序列图片,可是不推荐这种操作方法来获得图片。
截图质量不保证所以你已经否定。
有一种方法比较简单,效果效率都可靠。
就是用播放视频的软件捕获(捕获和截图有质的不同,截图是抓屏幕的画面,捕获是提取视频的画面),有这个功能的播放器很多,值得推荐的是kmplayer这个播放器。
播放视频有右键点击画面在菜单中就有捕获选项,
捕获》画面高级捕获》按需设定然后播放视频》点开始。
展开全部
你是Opencv1.0吧,是最近一年内买的电脑吧?我具体不知道什么原因,但是我本一开始不能用,但是用VS2005配置Opencv2.0之后,我的本本的摄像就能够被调用了。
希望能够帮到你!
希望能够帮到你!
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的是摄像头没打开还是什么问题啊?
代码应该没错阿
看看是不是摄像头禁用了或者没装驱动
代码应该没错阿
看看是不是摄像头禁用了或者没装驱动
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询