1

奇妙な理由により、プログラムは Web カメラからフレームを読み取ることができません。ただし、Webカメラは正常に開きます。私はこの問題を検索しましたが、どれもうまくいかないさまざまな解決策を見つけました。これは私のコードです

#include <iostream>
#include <cstdlib>
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"

int main()
{
    // access the default webcam 
    cv::VideoCapture cap(0); 

    // Double check the webcam before start reading. 
    if ( !cap.isOpened() ){ 
        std::cerr  << "Cannot open the webcam " << std::endl;
        exit (EXIT_FAILURE);
    }

    cv::Mat frame;
    cv::namedWindow("webcam",CV_WINDOW_AUTOSIZE);

    while ( true ){

       // acquire frame 
       cap >> frame;

       // Safety checking 
       if ( !frame.data ){ 
         std::cerr << "Cannot acquire frame from the webcam " << std::endl;
            break;
       }

       cv::imshow("webcam", frame); 

       if ( cv::waitKey(30) == 27){
        std::cout << "esc key is pressed" << std::endl;
        break; 
       }
    }

    return 0;
} 

これはプログラムを終了する前のウィンドウです。

ここに画像の説明を入力

Windows 7(デルのラップトップ)を使用しています。コードは、.dll に対してリンクするリリース モードでコンパイルされます。OpenCV のバージョンは 2.4.10 です。コマンドプロンプトで

cl /EHsc main.cpp /Fetest.exe /I D:\CPP_Libraries\opencv_2.4.10\build\include /link /LIBPATH:D:\CPP_Libraries\opencv_2.4.10\build\x86\vc12\lib opencv_core2410.lib opencv_highgui2410.lib 

ubuntu(Windows 7と一緒にデュアルブート)で同じコードを実行しましたが、HighGUIではなくウェブカメラを開き、このエラーが発生しました

HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP
init done 
opengl support available 

この問題に関する提案。掘り下げた後、何人かのpplが を指摘したので、opencvを再インストールして適切cmakeに構成する必要があります。cmakeこれが本当に ubuntu と Windows の両方の問題である場合、ライブラリを再インストールせずにこの問題の解決策はありますか? ありがとう

4

1 に答える 1

-1

VideoCapture heure: VideoCaptureの opencv ドキュメントに従ってください。C++ でのビデオ キャプチャの簡単な例を示します。

コードにはいくつかの違いがありMat frameます。これはループ内にあります。

于 2015-04-29T16:13:34.423 に答える