首页 > 代码库 > OpenCV打不开摄像头的替代解决方案
OpenCV打不开摄像头的替代解决方案
一般来说,opencv要打开摄像头的话,可以使用:VideoCapture captRefrnc(0); 这类方式。
重装系统之后,为了避免安装巨大的visual studio,改成了codeblocks,另外opencv也采用cmake+codeblocks的方式编译而成,但是采用默认设置编译出来的opencv无法开启笔记本电脑的摄像头,尝试其他解决方法之后,想到了之前用过的 K-Lite Codec Pack 配合avisynth编写avs脚本解决解码器的思路,利用K-Lite Codec Pack+avs脚本来打开摄像头。
如果你也遇到opencv无法打开摄像头问题而无法解决,不妨尝试这种方案。
准备工作:
1:安装K-Lite Codec Pack,选择full版本安装,这样可以得到后续要用的GraphStudioNext
http://www.codecguide.com/download_kl.htm
2:安装avisynth
http://sourceforge.net/projects/avisynth2/files/AviSynth%202.5/
3:安装avisynth-as-directshow-capture
https://github.com/rdp-org/avisynth-as-directshow-capture
安装完成之后,打开GraphStudioNext
进入程序后,用Ctrl+F快捷键,或者点击Graph->Insert Filter
找到你的摄像头,一般来说会有cam关键字,我的叫做Intergrated Webcam,选择它,并点击insert
选择好你的Cam,之后用File->Save As Graph,保存出.grf文件,比如我的是:E:\cam.avs
下一步便是编写avs脚本打开这个grf文件就行了
打开记事本,输入directshowsource("E:\cam.GRF", audio=False, framecount=1000000, fps=10)
保存成filename.avs
之后用Media player classic打开这个文件测试是否成功,如果能用Media player classic 打开摄像头就是成功了。
之后只需要像打开视频文件一样在opencv里打开这个avs文件就可以了:
VideoCapture captRefrnc("E:\cam.avs");
OpenCV打不开摄像头的替代解决方案