我创建了最简单的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?
答案 0 :(得分:0)
正如您在opencv文档中看到的那样,必须使用imread方法,如下所示: Mat cv :: imread(const String&amp; filename, int flags = IMREAD_COLOR); QString是一种仅与qt库兼容的字符串,因此必须将QString转换为String才能正确使用imread方法。
使用: imread(fileName.toStdString());