Błąd Runtime Opencv HighGui - „HIGHGUI ERROR: V4L / V4L2: VIDIOC_S_CROP”. Skompilowano krzyż Opencv. Host = 64-bitowy Ubuntu 12.04. Cel = ARM-Cortex-A9

Jestem początkującym w OpenCV i staram się jak najlepiej uzyskać prostą aplikację działającą na platformie wbudowanej. Skompilowałem OpenCV 2.4.4 i zbudowałem go WITH_GTK = ON, WITH_UNICAP = ON, WITH_V4L = ON w razie potrzeby dla obsługi kamery i GUI. Poniższy przykładowy kod kompiluje krzyżowo na hoście:

#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;
}

Kompilacja w ten sposób dla łączenia statycznego:

arm-linux-gnueabi-g ++ -mcpu = cortex-a9 -mfpu = neon -static opencv_camshow.cpp -o exe -I / home / om / OpenCV-2.4.4 / platform / linux / build_soft / install / include -L / home / om / OpenCV-2.4.4 / platform / linux / build_soft / install / lib -L / home / om / OpenCV-2.4.4 / platform / 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

Oto problem. Gdy próbuję uruchomić plik wykonywalny „exe” na obiekcie docelowym, otrzymuję ten błąd wykonania:

HIGHGUI ERROR: V4L / V4L2: VIDIOC_S_CROP Błąd OpenCV: Nieokreślony błąd (funkcja nie jest zaimplementowana. Przebuduj bibliotekę przy pomocy Windows, GTK + 2.x lub Carbon. Jeśli używasz Ubuntu lub Debian, zainstaluj libgtk2.0-dev i pkg -config, a następnie ponownie uruchom skrypt cmake lub configure) w cvNamedWindow, plik /home/om/OpenCV-2.4.4/modules/highgui/src/window.cpp, wiersz 652

zakończ wywoływane po wywołaniu instancji 'cv :: Exception'

what (): /home/om/OpenCV-2.4.4/modules/highgui/src/window.cpp:652: error: (-2) Funkcja nie jest zaimplementowana. Przebuduj bibliotekę przy pomocy Windows, GTK + 2.x lub Carbon. Jeśli używasz Ubuntu lub Debian, zainstaluj libgtk2.0-dev i pkg-config, a następnie ponownie uruchom cmake lub skonfiguruj skrypt w funkcji cvNamedWindow

Ponownie zainstalowałem libgtk2.0-dev, pkg-config istnieje i ponownie skompilował OpenCV, ale to nie pomogło. Daj mi znać, jeśli ktoś wie, jak rozwiązać ten problem. Z góry dziękuję. ~ Om

Więcej informacji: Zorientowałem się, co powoduje ten problem, ale jeszcze go nie naprawiłem ...

Z mojego zrozumienia problem leży w skryptach cmake opencv. Nie potwierdza istnienia GTK, a zatem krzyżuje się bez wsparcia gtk. To po upewnieniu się, że biblioteka GTK oparta na ramieniu jest obecna w folderze lib biblioteki narzędziowej, a jej ścieżka jest eksportowana do ścieżek systemowych.

questionAnswers(3)

yourAnswerToTheQuestion