Я хочу использовать платформу OpenCv с Qt Applications в Linux (Debian).С https://opencv.org/releases.html Я скачал opencv-4.0.1.zip и разархивировал его в папку.Затем, используя CMake GUI, я настроил сборку с пометкой опции BUILD_opencv_world.Затем я сгенерировал сборку и скомпилировал библиотеку с make
и make install
и все вроде бы нормально.
Я создал файл opencv.pri с:
INCLUDE += /usr/local/include
LIBS += -L/usr/local/lib -lopencv_world
Чтобы протестировать OpenCv, я создал проект командной строки Qt и попытался загрузить изображение и отображение, здесь QtCvTest.pro
QT -= gui
CONFIG += c++11 console
CONFIG -= app_bundle
# The following define makes your compiler emit warnings if you use
# any feature of Qt which as been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += main.cpp
include(/home/stefano/opencv-4.0.1/opencv.pri)
и main.cpp
#include <QCoreApplication>
#include <QDebug>
#include <opencv2/opencv.hpp>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug() << "QtCvTest Start";
using namespace cv;
Mat image;
image = imread("/home/stefano/Pictures/2018/02/27/DSC_1421.JPG", CV_LOAD_IMAGE_COLOR);
if(! image.data ) {
qDebug() << "Could not open or find the image";
return -1;
}
namedWindow( "Test", WINDOW_AUTOSIZE );
imshow( "Test", image );
qDebug() << "QtCvTest End";
return a.exec();
}
ЕслиЯ пытаюсь скомпилировать, я получаю следующую ошибку
main.cpp:22: error: undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'
есть идеи, как решить эту ошибку?
Заранее спасибо за помощь