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.