使用openFv和Qt使用QFileDialog :: getOpenFileName打开图像

时间:2015-02-19 20:16:48

标签: c++ qt opencv

我创建了最简单的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?

1 个答案:

答案 0 :(得分:0)

正如您在opencv文档中看到的那样,必须使用imread方法,如下所示: Mat cv :: imread(const String&amp; filename, int flags = IMREAD_COLOR); QString是一种仅与qt库兼容的字符串,因此必须将QString转换为String才能正确使用imread方法。

使用: imread(fileName.toStdString());

相关问题