Qt+opencv:读取、显示图像

GitHub:点击下载完整代码

本文主要是使用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);
    }
原文地址:https://www.cnblogs.com/gousheng/p/7849658.html