#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,Size(7,7),1.5,1.5); Canny(edges,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 / platform / 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静态
这是问题.当我尝试在目标上运行可执行文件“exe”时,我得到这个运行时错误:
HIGHGUI错误:V4L / V4L2:VIDIOC_S_CROP
OpenCV错误:未指定的错误(该函数未实现)使用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:error:(-2)该函数未实现.用Windows,GTK 2.x或Carbon支持重建库.如果您在Ubuntu或Debian上,然后在函数cvNamedWindow中重新运行cmake或configure脚本
我重新安装了libgtk2.0-dev,pkg-config exists&重新编译了OpenCV,但这没有帮助.如果有人知道如何克服这个问题,请让我知道.提前致谢. 〜嗡
更多信息:
我弄清楚是什么导致这个问题,但还没有修复它?
从我的理解中,问题在于opencv的cmake脚本.它不承认GTK的存在,因此没有gtk支持的交叉编译.这确保在工具链的lib文件夹中存在基于arm的gtk库,并将其路径导出到系统路径.
如果没有,请从突触包管理器中安装v4l2ucp,v4l-utils和libv4l-dev.然后再重新制作.
这对我有用,但是我在Ubuntu 12.04上使用OpenCV与python绑定.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。