Не получается добавить opencv в QTCreator
Скачал opencv с репозитория. В профайле прописал 
информацию о путях взял отсюда 
прописал в коде
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <opencv2/opencv.hpp>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
cv::Mat inputImage =cv::imread("/home/anton/mbuntu-11.jpg");
cv::imshow("Display Image", inputImage);
}
MainWindow::~MainWindow()
{
delete ui;
}
и получил кучу ошибок
Что я сделал неправильно? что мне нужно дописать, чтоб qt увидел путь к файлам библиотеки?
Ответы (1 шт):
Автор решения: Roman Ozhegov
→ Ссылка
Насколько я понимаю у вас не все библиотеки указаны линковщику. На это указывает возникающая ошибка. Для примера мой тестовый pro-файл. Прошу учесть тот факт, что мой пример сделан под windows в вашем же случае (linux) названия библиотек могут отличаться.
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = OpenCvTest
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
CONFIG += c++11
SOURCES += \
main.cpp \
mainwindow.cpp
HEADERS += \
mainwindow.h
FORMS += \
mainwindow.ui
INCLUDEPATH += D:\opencv\build\include
LIBS += D:\opencv\opencv_bin\bin\libopencv_core410.dll
LIBS += D:\opencv\opencv_bin\bin\libopencv_highgui410.dll
LIBS += D:\opencv\opencv_bin\bin\libopencv_videoio410.dll
LIBS += D:\opencv\opencv_bin\bin\libopencv_video410.dll
LIBS += D:\opencv\opencv_bin\bin\libopencv_imgcodecs410.dll
LIBS += D:\opencv\opencv_bin\bin\libopencv_imgproc410.dll
LIBS += D:\opencv\opencv_bin\bin\libopencv_features2d410.dll
LIBS += D:\opencv\opencv_bin\bin\libopencv_calib3d410.dll
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
Ну и Mainwindow.cpp. Пример чисто условный, просто чтобы показать как я использовал вызов функций из ОpenCV.
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <QThread>
#include <opencv2/core.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/video.hpp>
#include <opencv2/highgui.hpp>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
//create GUI windows
cv::namedWindow("Frame");
cv::namedWindow("FG Mask MOG 2");
//create Background Subtractor objects
cv::Ptr<cv::BackgroundSubtractorMOG2> pMOG2 = cv::createBackgroundSubtractorMOG2(); //MOG2 approach
cv::VideoCapture capture("e:/temp/test.mp4");
if(!capture.isOpened()){
//error in opening the video input
qDebug() << "Unable to open video file: e:/temp/test.mp4";
close();
}
cv::Mat frame;
while (1){
if (!capture.read(frame)){
qDebug()<<"Unable to read next frame.";
close();
}
cv::imshow("Frame", frame);
QThread::sleep(100);
qApp->processEvents();
}
cv::destroyAllWindows();
}