2017-07-21 33 views
0

我尝试从资源中读取图像。Qt创建者:从资源中读取图像

的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

使用QFile可以使用Qt资源系统存储资源读取只有Qt类,从docs

资源系统是基于QMAKE,RCC(Qt的资源编译器)之间的紧密合作,一个QFile。

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

+0

哦!你是对的,非常感谢你! –