OpenCV-Qt~Anzeigebild

  OpenCV selbst bietet einige GUI-Methoden, es gibt jedoch immer noch Einschränkungen bei deren Verwendung. Am Beispiel von C++ werden die meisten von uns Qt oder MFC verwenden, um GUI-Programme in praktischen Anwendungen zu schreiben. Im Gegensatz dazu ist Qt einfacher zu verwenden als MFC und verfügt über umfangreichere Schnittstellenstile, sodass immer mehr visuelle C++-Entwickler und Unternehmen dazu neigen, Qt als GUI für visuelle Projekte zu verwenden.

    Es gibt zwei häufig verwendete Methoden zum Anzeigen von OpenCV-Bildern in Qt: Eine besteht darin, QLabel zum Anzeigen zu verwenden, und die andere darin, QGraphicsView zum Anzeigen zu verwenden.

Umsetzungsschritte

    Bereiten Sie zunächst die anzuzeigenden Bilder vor, konfigurieren Sie die OpenCV-Umgebung (hier überspringen) und erstellen Sie eine neue Qt Widgets-Anwendung.

[1] Fügen Sie ein Label-Steuerelement und ein Grafikansicht-Steuerelement hinzu, entfernen Sie den Label-Textinhalt und fügen Sie einen Rahmen hinzu.

【2】Fügen Sie zwei Drucktasten hinzu (mit den Namen QLabel bzw. Graphics View) und gestalten Sie das Layout einfach.

[3] Gehen Sie zur Slot-Funktion, die Button entspricht, und fügen Sie Code hinzu:


//QLabel显示OpenCV图像
void MainWindow::on_pushButton_clicked()
{
    Mat srcImg = imread("1.jpg");
    if(srcImg.empty())
    {
        QMessageBox::information(this,"警告","图片读取失败,请检查图片路径!");
        return;
    }
    Mat imgShow;
    cvtColor(srcImg, imgShow, COLOR_BGR2RGB); // 图像格式转换
    QImage qImg = QImage((unsigned char*)(imgShow.data), imgShow.cols,
                             imgShow.rows, imgShow.cols*imgShow.channels(), QImage::Format_RGB888);
    ui->label->setPixmap(QPixmap::fromImage(qImg.scaled(ui->label->size(), Qt::KeepAspectRatio)));
}


//Graphics View显示OpenCV图像
void MainWindow::on_pushButton_2_clicked()
{
    Mat srcImg = imread("2.jpg");
    if(srcImg.empty())
    {
        QMessageBox::information(this,"警告","图片读取失败,请检查图片路径!");
        return;
    }
    Mat imgShow;
    cvtColor(srcImg, imgShow, COLOR_BGR2RGB); // 图像格式转换
    QImage qImg = QImage((unsigned char*)(imgShow.data), imgShow.cols,
                             imgShow.rows, imgShow.cols*imgShow.channels(), QImage::Format_RGB888);

    QGraphicsScene *scene = new QGraphicsScene;//图像显示
    ui->graphicsView->setScene(scene);
    ui->graphicsView->show();
    scene->addPixmap(QPixmap::fromImage(qImg));
}

【4】Ausgabeergebnisse (QLabel links, Grafikansicht rechts): whaosoft  aiot  http://143ai.com

Standardmäßig generiert die Grafikansicht automatisch einen Schieberegler, wenn das Bild nicht vollständig angezeigt wird. 

Zusammenfassen

    Das Obige zeigt zwei Methoden zum Anzeigen von Bildern mit Qt+OpenCV. Die QLabel-Methode eignet sich für Anfänger und einfache Anwendungen. Die Grafikansicht wird für fortgeschrittene Entwicklungs- und Projektanwendungen empfohlen.

Je suppose que tu aimes

Origine blog.csdn.net/qq_29788741/article/details/131879426
conseillé
Classement