Windows 8 ホストを搭載した VirtualBox の Ubuntu 14.04 LTS ゲストで OpenCV 3.0.0-rc1 を使用しています。ウェブカメラ(Logitech C170)(OpenCVのドキュメントから)からフレームを読み取るための非常に単純なプログラムがあります。残念ながら、うまくいきません (私は 3 つの異なるウェブカメラを試しました)。数秒ごとに「select timeout」というエラーがスローされ、フレームが読み取られますが、フレームは黒です。何か案は?
コードは次のとおりです。
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
using namespace std;
using namespace cv;
// Main
int main(int argc, char **argv) {
/* webcam setup */
VideoCapture stream;
stream.open(0);
// check if video device has been initialized
if (!stream.isOpened()) {
fprintf(stderr, "Could not open Webcam device");
return -1;
}
int image_width = 640; // image resolution
int image_height = 480;
Mat colorImage,currentImage;
bool loop = true;
/* infinite loop for video stream */
while (loop) {
loop = stream.read(colorImage); // read webcam stream
cvtColor(colorImage, currentImage, CV_BGR2GRAY); // color to gray for current image
imshow("Matches", currentImage);
if(waitKey(30) >= 0) break;
// end stream while-loop
}
return 0;
}