image转pixmap qt_Qt 编程指南10 QImage Mat QPixmap转换
//示例 pushButtonOpenPicBig按鈕clicked單擊動(dòng)作觸發(fā)
void Qt_Window::on_pushButtonOpenPicBig_clicked()
{
string filename =GetFileName() ; // 獲取圖像路徑
Mat picMat= imread(filename, 1); // 讀取保存為opencv Mat類圖像
QPixmap picQPixmap = MatToQT(picMat); //opencv Mat類圖像轉(zhuǎn)換QT圖像
//Text Browser QT控件 顯示圖像
ui.labelShow->setPixmap(picQPixmap);
//設(shè)置標(biāo)簽的新大小,與像素圖一樣大
ui.labelShow->setGeometry(picQPixmap.rect());
waitKey();
}
//功能:以對(duì)話框的打開(kāi)的模式獲取圖片目錄
//輸入: 無(wú)
//輸出 : 字符型 路徑
string GetFileName(){
QString strFileName;? //文件名
strFileName = QFileDialog::getOpenFileName(this, tr("打開(kāi)靜態(tài)圖片"), "",
"Pictures (*.bmp *.jpg *.jpeg *.png *.xpm);;All files(*)");
if (strFileName.isEmpty())
{
//文件名為空,返回
return;
}
QTextCodec *code = QTextCodec::codecForName("GB2312");//解決中文路徑問(wèn)題
string filename = code->fromUnicode(strFileName).data();
return filename;
}
// 功能: 將Mat圖像 轉(zhuǎn)換為 QT 的圖像
//輸入: Mat opencv類圖像
//輸出: QPixmap QT類圖像
QPixmap MatToQT(Mat picMat){
QImage picQImage;
QPixmap picQPixmap;
cvtColor(picMat, picMat, CV_BGR2RGB);//三通道圖片需bgr翻轉(zhuǎn)成rgb
picQImage = QImage((uchar*)picMat.data, picMat.cols, picMat.rows, QImage::Format_RGB888);
picQPixmap = QPixmap::fromImage(picQImage);
return picQPixmap;
}
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的image转pixmap qt_Qt 编程指南10 QImage Mat QPixmap转换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: android黑窗口获取md5_Andr
- 下一篇: 全民热推的思维导图应该怎么画,一篇文章教