1

現在、LinuxでOpenCV2.4.3を使用しています。そして、私の/ dev /には、チーズで正常に動作するvideo0というデバイスがあります。

現在、次のコードを使用してカメラにアクセスしようとしています。このコードはqtcreatorで記述され、必要なライブラリを含めるためにqmakeでコンパイルされます。OpenCVライブラリについては、ソースコードをダウンロードし、自分のマシンのWebサイトの指示に従ってコンパイルしました。

++ main.cpp:

#include <iostream>
#include <opencv2/opencv.hpp>
#include <cstdlib>

int main(int argc, char** argv) {
    int cameraNumber = 0;
    if (argc>1)
        cameraNumber = atoi(argv[1]);
    cv::VideoCapture camera;
    camera.open(cameraNumber);
    if(!camera.isOpened()) {
        std::cerr<<"Error opening camera"<<std::endl;
        exit(1);
    }
    camera.set(CV_CAP_PROP_FRAME_WIDTH,640);
    camera.set(CV_CAP_PROP_FRAME_HEIGHT,480);

    while(true) {
        cv::Mat cameraFrame;
        camera>>cameraFrame;
        if (cameraFrame.empty()){
            std::cerr<<"No frame read from camera"<<std::endl;
            exit(1);
        }
        imshow("Camera",cameraFrame);

        char keypress = cv::waitKey(20);
        if (keypress==27) {
            break;
        }
    }
    return 0;
}

++ test.pro

TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += main.cpp

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../opt/OpenCV-2.4.3/lib/release/ -lopencv_core
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../opt/OpenCV-2.4.3/lib/debug/ -lopencv_core
else:unix: LIBS += -L$$PWD/../../../../opt/OpenCV-2.4.3/lib/ -lopencv_core

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../opt/OpenCV-2.4.3/lib/release/ -lopencv_highgui
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../opt/OpenCV-2.4.3/lib/debug/ -lopencv_highgui
else:unix: LIBS += -L$$PWD/../../../../opt/OpenCV-2.4.3/lib/ -lopencv_highgui

INCLUDEPATH += $$PWD/../../../../opt/OpenCV-2.4.3/include
DEPENDPATH += $$PWD/../../../../opt/OpenCV-2.4.3/include

ただし、プログラムを実行すると、プログラムが出力さError opening cameraれて終了します。これは、カメラが正常に開かれないことを意味します。私はしばらくグーグルで検索されましたが、この問題を解決するための可能な解決策は見つかりませんでした。この問題を解決する方法について誰かが私にアドバイスをくれますか?ありがとう!

4

1 に答える 1

3

おそらく、Linuxに必要ないくつかの追加ライブラリが不足しています。

OpenCVインストールガイドの追加の前提条件によると、LinuxでOpenCVを使用する場合は、ffmpeg、libgstreamer、libv4l、libxine、unicap、libdc13942.xのライブラリをインストールする必要があります。

Ubuntu 12.04では、次のパッケージのインストールが機能しました(* sudo apt-get install __ *):

  • python-opencv
  • libhighgui2.3
  • libhighgui-dev
  • ffmpeg
  • libgstreamer0.10-0
  • libv4l-0
  • libv4l-dev
  • libxine2
  • libunicap2
  • libdc1394-22

幸運を!

于 2013-01-07T13:23:15.370 に答える