问题 运行时Opencv HighGui错误 - “HIGHGUI错误:V4L / V4L2:VIDIOC_S_CROP”。 Opencv交叉编译。主机= 64位Ubuntu 12.04。目标= ARM-的Cortex-A9


我是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;
}

为静态链接编译这种方式:


12433
2018-04-29 20:19


起源

也许 那 可以帮到你吗? - Étienne
感谢Etienne的回复。在我的情况下,我试图交叉编译,我有工具链中的所有库。路径也正确导出。我更新了问题,因为首先cmake无法定位gtk,因此在没有GTK支持的情况下交叉编译。我想解决这个问题。 - om9
如果 ldd 在目标上可用,检查可执行文件要查找的库。 - another.anon.coward
写一个合适的 pkg-config 档案(.PC)对于GTK。 - karlphillip


答案:


做完之后 cmake 语句验证是否输出 cmake 包括以下文字: V4L/V4L2: Using libv4l

如果它不存在,那么安装 v4l2ucpv4l-utils 和 libv4l-dev 来自synaptic包管理器。然后 cmake 并再次建立。

这对我有用,但我在Ubuntu 12.04上使用OpenCV与python绑定。


10
2017-09-18 05:38





为了交叉编译,你需要告诉pkg-config查找正确的路径(默认情况下这将是你的主机config / .pc文件!)

来自pkg-config网站

  • 搜索$ PKG_CONFIG_PATH中列出的目录
  • 当指定$ PKG_CONFIG_LIBDIR时,它将覆盖已编译的默认目录(例如/ usr / lib / pkgconfig)和   PKG_CONFIG_PATH。   请注意,在指定PKG_CONFIG_LIBDIR时,pkg-config将完全忽略PKG_CONFIG_PATH中的内容,即使   文档陈述不同的东西。

2
2018-05-13 11:10



只是要清楚。我需要将lib文件(例如libgdk-x11-2.0.so.0)从ARM linux传输到x86 linux并将x86上的PKG_CONFIG_PATH设置为指向该路径? - Gossamer
通常你一次交叉编译整个buildroot(除非你知道libs是用兼容的编译器编译的 - 使用gcc-3.3与gcc-4.x混合时可能会发生令人讨厌的事情) - drahnr


Opencv highgui错误

必须使用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-packages

0
2017-12-13 09:12