Я пытаюсь получить доступ к классу 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
Я использую QtCreator и Rasberry 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;
}