本文主要是使用Qt与opencv将图像进行显示在QT界面上。
程序运行后的界面如下所示:
(由于只有打开图像之后,才能对图像进行翻转,所以程序设置为读取图像成功之后才能点击翻转图像按钮)
点击打开图像:
打开图像,获取图像名称代码:
QString filename = QFileDialog::getOpenFileName(this, tr("open image"), ".", tr("Image file(*.png *.jpg *.bmp)")); image = imread(filename.toLocal8Bit().data());
显示效果:
显示图像代码:
QImage img = QImage((const unsigned char*)(image.data), image.cols, image.rows, QImage::Format_RGB888); //设定图像大小自适应label窗口的大小 img = img.scaled(ui->label->size(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation); ui->label->setPixmap(QPixmap::fromImage(img));
点击翻转图像按钮:
flip(image, image, 1); QImage img = QImage((const unsigned char*)(image.data), image.cols, image.rows, QImage::Format_RGB888); img = img.scaled(ui->label->size(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation); ui->label->clear(); ui->label->setPixmap(QPixmap::fromImage(img));
没有打开图像时, 翻转图像按钮设置为不能点击:
ui->pushButton_2->setEnabled(false);
判断图像是否打开,打开设置为能够点击状态:
if(image.data) { ui->pushButton_2->setEnabled(true); }