在 Beaglebone 中使用 openCV 编译 C++ 代码

Posted

技术标签:

【中文标题】在 Beaglebone 中使用 openCV 编译 C++ 代码【英文标题】:Compiling C++ code using openCV in Beaglebone 【发布时间】:2013-01-28 15:54:17 【问题描述】:

我用 C++ 编写了以下代码,使用 openCV 在 Beaglebone 中运行:

    #include <unistd.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    #include <errno.h>
    #include <fcntl.h>
    #include <termios.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <netinet/in.h>
    #include "opencv/cv.h"
    #include "opencv/highgui.h" 

    using namespace cv;
    using namespace std;

    int main(int argc, char *argv[])
    
         CvCapture *capture = 0;
         Mat img3;
         Mat src;

         capture = cvCaptureFromCAM(0);

         vector<int> p;
         p.push_back(CV_IMWRITE_PNG_COMPRESSION);
         p.push_back(9);

         while (1) 
              img3 = cvQueryFrame(capture);
              cvtColor(img3, img3, CV_BGR2GRAY);
              pyrDown(img3, src, Size( img3.cols/2, img3.rows/2 ) );
              if (!imwrite("/home/root/Desktop/website/fig3bmp.bmp",src,p)) 
                  printf("mat not saved!!!\n"); 
              
         

         return 0; 
    

我尝试使用“g++ -o CamaraTest CamaraTest.cpp”编译代码,但它不起作用,我得到的所有错误都类似于:“未定义的引用:cv...”

我已经检查了文件“cv.h”和“highgui.h”在目录“/usr/include/opencv”中。

如何编译这段代码? 任何建议都会有很大帮助。

提前致谢。

格斯。

【问题讨论】:

Set compiler path for OpenCV 的可能重复项 OpenCV on ubuntu 11.10的可能重复 【参考方案1】:

这些“undefined reference to: cv...”消息是由于缺少库而导致的链接器错误 - 您需要在 g++ 命令行中链接 OpenCV 库,例如:

$ g++ -Wall -g -o CamaraTest CamaraTest.cpp `pkg-config --cflags --libs opencv` 

【讨论】:

我已经回答了同样的问题无数次了。问题是人们不使用搜索框。大声笑 非常正确。还有很多人似乎不理解编译和链接之间的区别,或者包含与库的作用。 感谢您的回复。它有效,但现在的问题是,当我使用“./CamaraTest”运行代码时,我收到一条消息:“分段错误”。我该如何解决这个问题? 嗯,这是一个不同的问题。尝试调试它,如果遇到问题,请提出一个新问题。 还有一件事 - 总是 编译时启用警告,并注意任何编译器警告。 g++ -Wall ...

以上是关于在 Beaglebone 中使用 openCV 编译 C++ 代码的主要内容,如果未能解决你的问题,请参考以下文章

beaglebone black 是不是支持 gpu 硬件加速?

Qt Creator 4.0.2 和 Beaglebone Black 与 Ubuntu 16.04.3

包含 NEON 或 VFP3 指令的 ELF?

在 Opencv 的 UYVY 编解码器中录制视频

使用 H264 编解码器将视频保存在 opencv 中

OpenCV videoWriter编解码器问题