OpenCV 2.4.3和视频输入Mat
我正在尝试使用videoInput库、OpenCV 2.4.3和VS2010 Express将两个或更多MSFT LifeCam HD-3000中的视频捕获到Mat类型中 我在上一次课时就学习了这个例子,效果很好OpenCV 2.4.3和视频输入Mat,opencv,visual-studio-2010,Opencv,Visual Studio 2010,我正在尝试使用videoInput库、OpenCV 2.4.3和VS2010 Express将两个或更多MSFT LifeCam HD-3000中的视频捕获到Mat类型中 我在上一次课时就学习了这个例子,效果很好 现在我想用C++ Mat类型替换iPLIGION类型。我试着在以下方面效仿: 这给了我以下几点: VI = new videoInput; int CurrentCam = 0; VI->setupDevice(CurrentCam,WIDTH,HEIGH
现在我想用C++ Mat类型替换iPLIGION类型。我试着在以下方面效仿:
这给了我以下几点: VI = new videoInput;
int CurrentCam = 0;
VI->setupDevice(CurrentCam,WIDTH,HEIGHT);
int width = VI->getWidth(CurrentCam);
int height = VI->getHeight(CurrentCam);
unsigned char* yourBuffer = new unsigned char[VI->getSize(CurrentCam)];
cvNamedWindow("test",1);
while(1)
{
VI->getPixels(CurrentCam, yourBuffer, false, true);
cv::Mat image(width, height, CV_8UC3, yourBuffer, Mat::AUTO_STEP);
imshow("test", image);
if(cvWaitKey(15)==27) break;
}
输出为线条图像(即,第一行看起来正确,但第二行看起来不正确,第三行正确,第四行不正确,等等)。这表明,要么是步骤部分错误,要么是IplImage类型和Mat类型之间存在一些差异,我没有得到这些差异。我试过查看/修改所有参数,但什么也找不到
希望这个答案能帮助那些面临从videoInput库加载图像到Mat类型的常见问题的人
提前谢谢 试试看
cv::Mat image(height, width, CV_8UC3, yourBuffer, Mat::AUTO_STEP);
试一试
非常感谢!它现在工作得很好。第二个示例使用宽度-高度顺序,但构造函数使用大小结构。这把我扔到了这里。排成一排的科尔斯的方式确实让那些习惯于宽高的人感到困惑。非常感谢!它现在工作得很好。第二个示例使用宽度-高度顺序,但构造函数使用大小结构。这把我扔到这里来了。排成队的方式确实让那些习惯于宽高的人感到困惑。