官方文档:
https://docs.opencv.org/master/
Qt pro环境配置:
OPENCVPATH = D:/MyTest/opencv3.2_win_lib/install #opencv编译安装目录
INCLUDEPATH += $${OPENCVPATH}/include
LIBS += -L$${OPENCVPATH}/x86/mingw/bin -lopencv_core320
示例代码:
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级在矩阵内存中占据的字节的数量。