Logitech C270 (OpenCV 2.4.2/C++) を使用して Ubuntu で単純なカメラ キャプチャを実行すると、次のエラー メッセージが表示されます。
HIGHGUI エラー: V4L/V4L2: VIDIOC_S_CROP
そしてさらに:
破損した JPEG データ: マーカー 0xd1 の前に 2 つの余分なバイト 破損した JPEG データ: マーカー 0xd6 の前に 1 つの余分なバイト 破損した JPEG データ: マーカー 0xd0 の前に 1 つの余分なバイト 破損した JPEG データ: マーカー 0xd0 の前に 1 つの余分なバイト
フレームを取得しますが、Mat オブジェクトへの書き込み時にフレームの幅と高さの値が入れ替わります。以下を参照してください。
Mat frame;
videoCapture = new VideoCapture(camId);
if(!videoCapture->isOpened()) throw Exception();
cout << "Frame width: " << videoCapture->get(CV_CAP_PROP_FRAME_WIDTH) << endl;
cout << "Frame height: " << videoCapture->get(CV_CAP_PROP_FRAME_HEIGHT) << endl;
(*videoCapture) >> frame;
cout << "Mat width: " << frame.rows << endl;
cout << "Mat height: " << frame.cols << endl;
出力:
Frame width: 640
Frame height: 480
Mat width: 480
Mat height: 640