簡體   English   中英

使用openFv和Qt使用QFileDialog :: getOpenFileName打開圖像

[英]open image using opencv and Qt using QFileDialog::getOpenFileName

我創建了最簡單的Gui,只用一個按鈕來讀取並使用Qt顯示圖像,按鈕的插槽是:

    void MainWindow::on_pushButton_clicked()
{
    QString fileName = QFileDialog::getOpenFileName(this,
                                                    tr("Open image"),
                                                    tr("."),
                                                    tr("Image Files (*.png *.jpg *.jpeg *.bmp * .tif)"));

    image= cv::imread(fileName);
    cv::namedWindow("Original Image");
    cv::imshow("Original Image", image);
}

我有以下錯誤:

error: invalid initialization of reference of type 'const string& {aka const std::basic_string<char>&}' from expression of type 'QString'
     image= cv::imread(fileName);
                               ^

如何成功使用QFileDialog類將有效路徑傳遞給imread?

正如您在opencv文檔中看到的,必須使用imread方法,如下所示:Mat cv :: imread(const String&filename,int flags = IMREAD_COLOR); QString是一種僅與qt庫兼容的字符串,因此必須將QString轉換為String才能正確使用imread方法。

use:imread(fileName.toStdString());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM