gpt4 book ai didi

c++ - 如何在树莓派上使用 OpenCV VideoCapture 类?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:42:58 24 4
gpt4 key购买 nike

我一直在尝试访问 VideoCapture 类以对每一帧执行一些图像处理,但我不断收到一系列错误,按顺序描述:

:-1: error: main.o: undefined reference to symbol '_ZN2cv12GaussianBlurERKNS_11_InputArrayERKNS_12_OutputArrayENS_5Size_IiEEddi'

/usr/local/lib/libopencv_imgproc.so.2.4:-1: error: error adding symbols: DSO missing from command line

:-1: error: collect2: error: ld returned 1 exit status

我正在使用 QtCreatorRasberry Pi 3。我能够从磁盘加载图像,那么为什么我从 OpenCV 文档 中提取的这段代码无法编译?

我已通过输入终端命令确保为 linux 驱动程序加载了适当的视频:

sudo modprobe bcm2835-v4l2

这是文档的链接 http://docs.opencv.org/2.4/modules/highgui/doc/reading_and_writing_images_and_video.html

#include "opencv2/opencv.hpp"

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;
}
// the camera will be deinitialized automatically in VideoCapture destructor
return 0;
}

最佳答案

我自己解决了这个问题,对于遇到类似问题的任何人,错误 DSO (Dynamic Shared Object) 表明某个库 (libopencv_imgproc.so.2.4) 不见了。

解决方法是修改你的.pro文件,我做了如下修改:

INCLUDEPATH +=/usr/local/include/opencv -->/usr/local/include/opencv2

LIBS += -L/usr/local/lib -lopencv_core -lopencv_highgui --> -L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui

注意:如果您添加 imgproc 库而不包括 opencv2,您将保留相同的错误。

关于c++ - 如何在树莓派上使用 OpenCV VideoCapture 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40660017/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com