1. 程式人生 > >Windows下Qt5+Opencv3.2 (一)圖片顯示

Windows下Qt5+Opencv3.2 (一)圖片顯示

官方文件:

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級在矩陣記憶體中佔據的位元組的數量。