11

私は OpenCV の初心者で、組み込みプラットフォームで実行される単純なアプリケーションを取得するために最善を尽くしています。OpenCV 2.4.4 をクロスコンパイルし、カメラと GUI のサポートの必要に応じて、WITH_GTK=ON、WITH_UNICAP=ON、WITH_V4L=ON をビルドしました。次のサンプル コードは、ホスト上でクロスコンパイルします。

#include <opencv/cv.h>
#include <opencv/highgui.h>
using namespace cv; 
int main(int, char**)
{
    VideoCapture cap(0); // open the default camera
    if (!cap.isOpened()) // check if we succeeded
        return -1;

    Mat edges;
    namedWindow("edges", 1);
    for (;;) {
        Mat frame;
        cap >> frame;   // get a new frame from camera
        cvtColor(frame, edges, CV_BGR2GRAY);
        GaussianBlur(edges, edges, Size(7, 7), 1.5, 1.5);
        Canny(edges, edges, 0, 30, 3);
        imshow("edges", edges);
        if (waitKey(30) >= 0)
            break;
    }
    return 0;
}

静的リンクのためにこの方法でコンパイルします。

arm-linux-gnueabi-g++ -mcpu=cortex-a9 -mfpu=neon -static opencv_camshow.cpp -o exe -I/home/om/OpenCV-2.4.4/platforms/linux/build_soft/install/include -L/ home/om/OpenCV-2.4.4/platforms/linux/build_soft/install/lib -L/home/om/OpenCV-2.4.4/platforms/linux/build_soft/3rdparty/lib -lopencv_calib3d -lopencv_features2d -lopencv_flann -lopencv_imgproc - lopencv_core -lopencv_contrib -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_flann -lopencv_photo -lopencv_videostab -pthread -lm -lrt -lzlib -static

これが問題です。ターゲットで実行可能ファイル 'exe' を実行しようとすると、次のランタイム エラーが発生します。

HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP OpenCV Error: Unspecified error (関数が実装されていません。Windows、GTK+ 2.x、または Carbon サポートでライブラリを再構築します。Ubuntu または Debian を使用している場合は、libgtk2.0-dev と pkg をインストールしてください。 -config、次に cmake を再実行するか、スクリプトを構成します) cvNamedWindow、ファイル /home/om/OpenCV-2.4.4/modules/highgui/src/window.cpp、652 行目

'cv::Exception' のインスタンスをスローした後に呼ばれる終了

what(): /home/om/OpenCV-2.4.4/modules/highgui/src/window.cpp:652: エラー: (-2) 関数は実装されていません。Windows、GTK+ 2.x、または Carbon をサポートするライブラリを再構築します。Ubuntu または Debian を使用している場合は、libgtk2.0-dev と pkg-config をインストールしてから、cmake を再実行するか、関数 cvNamedWindow でスクリプトを構成します。

libgtk2.0-dev を再インストールし、pkg-config が存在し、OpenCV を再コンパイルしましたが、これは役に立ちませんでした。この問題を克服する方法を知っている人がいたら教えてください。前もって感謝します。〜オム

詳細情報: この問題の原因を突き止めましたが、まだ修正していません...

私の理解では、問題はopencvのcmakeスクリプトにあります。GTK の存在を認識しないため、gtk サポートなしでクロス コンパイルします。これは、arm ベースの gtk ライブラリがツールチェーンの lib フォルダーに存在し、そのパスがシステム パスにエクスポートされていることを確認した後です。

4

3 に答える 3

11

cmakeステートメントを実行した後、 の出力にcmake次のテキストが含まれているかどうかを確認します: V4L/V4L2: Using libv4l.

そこにない場合は、 をインストールしv4l2ucp、シナプス パッケージ マネージャーからインストールします。その後、再度ビルドします。v4l-utilslibv4l-devcmake

これは私にとってはうまくいきましたが、Ubuntu 12.04でPythonバインディングでOpenCVを使用していました。

于 2014-09-18T05:38:43.543 に答える