--我是OpenCV的初学者,并且尽我最大的努力在嵌入式平台上运行一个简单的应用程序。我交叉编译了OpenCV 2.4.4,并根据相机和图形用户界面支持的需要,构建了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=皮层-a9 -mfpu=neon -static opencv_camshow.cpp -o exe -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错误: V4L/V4L2: VIDIOC_S_CROP OpenCV错误:未指定的错误(该函数未实现)。使用Windows、GTK+ 2.x或碳支持重新构建库。如果您在Ubuntu或Debian上,安装libgtk2.0-dev和pkg-config,然后在/home/om/OpenCV-2.4.4/modules/highgui/src/window.cpp,第652行cvNamedWindow中重新运行cmake或配置脚本)。
在引发'cv::Exception‘实例后调用终止
/home/om/OpenCV-2.4.4/modules/highgui/src/window.cpp:652:错误:(-2)函数没有实现。使用Windows、GTK+ 2.x或碳支持重新构建库。如果您在Ubuntu或Debian上,请安装libgtk2.0dev和pkg,然后在函数cvNamedWindow中重新运行cmake或配置脚本。
I重新安装libgtk2.0dev,pkg存在&重新编译OpenCV,但这并没有帮助。如果有人知道如何克服这个问题,请告诉我。提前谢谢。~Om
更多信息:,我知道是什么导致了这个问题,但还没有解决.
据我理解,问题在于opencv的cmake脚本。它不承认存在GTK,因此没有gtk支持的交叉编译。这是在确保基于arm的gtk库存在于工具链的lib文件夹及其导出到系统路径的路径之后。
发布于 2014-09-18 05:38:43
执行cmake语句后,验证cmake的输出是否包括以下文本:V4L/V4L2: Using libv4l。
如果不存在,那么从synaptic管理器安装v4l2ucp、v4l-utils和libv4l-dev。然后cmake并重新构建。
这对我起了作用,但我在Ubuntu12.04上使用了OpenCV和python绑定。
发布于 2014-05-13 11:10:53
为了交叉编译,您需要告诉pkg-config查找正确的路径(默认情况下,这将是您的主机配置/..pc文件!)
来自pkg-config网站
发布于 2016-12-13 09:12:53
Opencv高误差
必须使用cmake重新安装opencv
git clone https://github.com/Itseez/opencv.git
cd ~/opencv
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_IPP=OFF ..
make -j4 sudo
make install
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packageshttps://stackoverflow.com/questions/16287488
复制相似问题