void MainWindow::displayMat(Mat &image)
{
Mat rgb;
QImage img;
if(image.channels() == 3)
{
cvtColor(image, rgb,CV_BGR2RGB); //颜色空间转换
img =QImage((const unsigned char*)(rgb.data),
rgb.cols,rgb.rows,
rgb.cols*rgb.channels(),
QImage::Format_RGB888);
}else
{
img =QImage((const unsigned char*)(image.data),
image.cols,image.rows,
image.cols*image.channels(),
QImage::Format_RGB888);
}
ui->label->setPixmap(QPixmap::fromImage(img));
ui->label->resize(ui->label->pixmap()->size());
ui->label->show();
}
void MainWindow::on_OpenAction_triggered()
{
QString file_Name = QFileDialog::getOpenFileName(this,
tr("open image"),
".",
tr("Image file(*.png *.jpg *.bmp)"));
if(file_Name.isEmpty())
{
QMessageBox::information(NULL, "file open error", "请重新打开图像", QMessageBox::Yes, QMessageBox::Yes);
}else
{
image = imread(file_Name.toLocal8Bit().data());
displayMat(image);
}
}