[英]QFileDialog: using getOpenFileName allow for non-existent files
[英]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.