Windows下Qt5+Opencv3.2 (一)圖片顯示
阿新 • • 發佈:2019-02-11
官方文件:
Qt pro環境配置:
OPENCVPATH = D:/MyTest/opencv3.2_win_lib/install #opencv編譯安裝目錄
INCLUDEPATH += $${OPENCVPATH}/include
LIBS += -L$${OPENCVPATH}/x86/mingw/bin
LIBS += $${OPENCVPATH}/x86/mingw/lib/libopencv_*
示例程式碼:
QString imgName = QFileDialog::getOpenFileName(this,"open image","/","*.jpg *.bmp *.png" );
if(imgName.isEmpty())
return;
cv::Mat srcImg = cv::imread(imgName.toStdString());//讀取3通道彩圖
cv::cvtColor(srcImg,srcImg,COLOR_BGR2RGB);//opencv預設使用的是BGR
QImage img(srcImg.data,srcImg.cols,srcImg.rows,srcImg.step[0],QImage::Format_RGB888);
ui->label->setPixmap(QPixmap::fromImage(img));
關於Mat.step:
step這裡指出的是影象在各個梯級上的位元組數大小,而這裡的梯級指的是構成影象的各層次。
如:三維影象由一個一個平面(第一級)構成,每一個平面由一行一行(第二級)構成,每行由一個一個點(第三級)構成。
同理:二維影象由一行一行(第一級)構成,而每一行又由一個一個點(第二級)構成。
Mat中的step[0]就是每一個第一級,在記憶體中佔據的位元組數量。
例如,二維影象中step[0]就是每一行(第一級)在矩陣記憶體中,佔據的位元組的數量。
也就是說step[i]就是第i+1級在矩陣記憶體中佔據的位元組的數量。