Qt Creator:从资源中读取图像

时间:2017-07-21 09:05:49

标签: qt opencv resources imread

我尝试从资源中读取图像。

Qt:5.9.1和OpenCV:3.2

我的代码是:

// Set initial screen
QImage image;
cv::Mat src = cv::imread(":/images/initialScreen.png");
image = ImageFormat::Mat2QImage(src);
videoFrameLabel->setPixmap(QPixmap::fromImage(image));

我的文件:

enter image description here

我的.pro文件:

QT       += core gui
QT += widgets
QT += gui
CONFIG += c++14
QT += multimedia multimediawidgets
...

SOURCES += \
        main.cpp \
        mainwindow.cpp \
    imageformat.cpp

HEADERS += \
        mainwindow.h \
    imageformat.h \
    blob.h

FORMS += \
        mainwindow.ui

INCLUDEPATH += C:\opencv\build\include
LIBS += C:\opencv-build\bin\libopencv_video320.dll
...
LIBS += C:\opencv-build\bin\libopencv_imgcodecs320.dll


DISTFILES +=

RESOURCES += \
    rsc.qrc

它不起作用,我在哪里犯错误?谢谢!

1 个答案:

答案 0 :(得分:1)

只有使用QFile的Qt类才能从使用Qt资源系统存储的资源中读取docs

  

资源系统基于qmake,rcc(Qt的资源编译器)和QFile之间的紧密合作。

因此,您必须使用QFile从资源文件中读取数据,然后将读取数据提供给cv::imdecode以获得cv::Mat