Qt5 и OpenCv 4 - PullRequest
       1

Qt5 и OpenCv 4

0 голосов
/ 01 января 2019

Я хочу использовать платформу 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&)'

есть идеи, как решить эту ошибку?

Заранее спасибо за помощь

1 Ответ

0 голосов
/ 02 января 2019

Вы должны использовать INCLUDEPATH и необходимые флаги для чтения и отображения изображения в окне:

INCLUDEPATH += /usr/local/include
LIBS += -L/usr/local/lib -lopencv_imgproc -lopencv_core -lopencv_highgui
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...