cvCreateCameraCapture 无法访问 OpenCV 3.0 相机
Posted
技术标签:
【中文标题】cvCreateCameraCapture 无法访问 OpenCV 3.0 相机【英文标题】:OpenCV 3.0 camera not accessible by cvCreateCameraCapture 【发布时间】:2015-11-14 16:19:21 【问题描述】:使用 windows 正在尝试使用 cvCreateCameraCapture (0) 打开我的网络摄像头;或 cvCaptureFromCAM (0) 但当我按下 ok 时它只是打开带有我的相机的视频源窗口没有任何反应它返回 null 有时我会出现黑屏 虽然相机在使用 C++ API VideoCapture 时工作,但我需要使用 C API 安装了 quicktime 并尝试了 -1,1,2,......1000 而不是 0 任何帮助:D ?
#include "opencv2\highgui.hpp"
#include <iostream>
using namespace std;
using namespace cv;
//cvCapture
int main()
IplImage * s;
namedWindow("l");
CvCapture* v = cvCreateCameraCapture(0);
while (1)
if( s = cvQueryFrame(v))
cvShowImage("l", s);
cout << "in";
if (char c = waitKey(10) == 27) break;
cvReleaseCapture(&v);
cvDestroyWindow("l");
return 2;
Here's what i get 当我按下确定时,没有任何反应,它保持灰色窗口 如果我用这个替换它可以工作,但我需要使用 C API (cvCreateCameraCapture)
int main()
VideoCapture v(0);
namedWindow("l");
if (!v.isOpened())return 2;
while (1)
Mat f;
v.read(f);
imshow("l", f);
if (char c = waitKey(10) == 27) break;
cvDestroyWindow("l");
【问题讨论】:
你能发一个minimal reproducible example吗? 这样好还是更详细? 你的 OpenCV 版本是多少? opencv 3.0 它被标记 对不起。我也有 3.0 和相同的结果。但我想我知道原因。请稍等。 【参考方案1】:这是一个known issue
我个人通过再次合并deleted part并构建dll解决了这个问题。
这里cap.cpp和cap_dshow.cpp
如果您使用这些文件重建 OpenCV 3.0 dll,您将解决您的问题。否则,您可以打开问题here 描述您的问题并等待开发人员的解决方案或使用 OpenCV 2.4.12
【讨论】:
【参考方案2】:在 Opencv 中使用 IplImage 和 Cvfunctions 早已不复存在。 您可以尝试使用旧版本的 opencv 来使用这些。
【讨论】:
以上是关于cvCreateCameraCapture 无法访问 OpenCV 3.0 相机的主要内容,如果未能解决你的问题,请参考以下文章
为什么OpenCV的`cvCreateCameraCapture`和`cvCreateFileCapture`不起作用?
const commandFolders = readdirSync('./commands'); ReferenceError:在 Object.<anonymous> 初始化之前无法访