我尝试从资源中读取图像。
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));
我的文件:
我的.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
它不起作用,我在哪里犯错误?谢谢!
答案 0 :(得分:1)
只有使用QFile
的Qt类才能从使用Qt资源系统存储的资源中读取docs:
资源系统基于qmake,rcc(Qt的资源编译器)和QFile之间的紧密合作。
因此,您必须使用QFile
从资源文件中读取数据,然后将读取数据提供给cv::imdecode
以获得cv::Mat
。