我正在尝试创建OpenCV的VideoCapture类的“包装器”,但我无法正常工作,我的代码如下:
#include "opencv2/opencv.hpp"
#include "opencv2/highgui/highgui.hpp"
class wrapper
{
private:
cv::VideoCapture cap;
int device_id;
public:
wrapper();
~wrapper();
void setup(int _device_id);
};
// wrapper.cpp
wrapper::wrapper()
{
device_id = 0;
}
wrapper::~wrapper()
{
cap.release();
}
wrapper::setup(int _device_id)
{
device_id = _device_id;
cap = cv::VideoCapture(device_id);
cout << "Checking device" << endl;
if(!cap.isOpened())
{
cout << "Couldn't open device" << endl;
return;
}
else
{
cout << "Device opened " << endl;
}
}
问题是它无法打开设备。我已经在starter_video.exe(OpenCV示例)上检查了我的设备,它确实打开了。
有什么想法吗?
答案 0 :(得分:4)
我从不尝试像你那样分配视频捕捉。 请尝试替换该行:
cap = cv::VideoCapture(device_id);
通过
cap.open(device_id);