【发布时间】:2016-10-17 08:53:07
【问题描述】:
我在 Qt Creator 中使用了imwrite() 函数。我未能在调试模式下运行代码,而在发布模式下成功运行。
我写了一个测试程序。以下是我所做的:
首先使用OpenCV,我在.pro中添加了如下代码:
INCLUDEPATH+=D:\Work_Software\OpenCV3.1\opencv\build\include
LIBS+=D:\Work_Software\OpenCV3.1\opencv\build\x64\vc12\lib\*.lib
然后我添加了一个按钮。槽函数为:
void MainWindow::on_pushButton_clicked()
{
Mat img;
img=imread("F:\\My_Desktop\\foot1.jpg",0);
imwrite("F:\\My_Desktop\\result.jpg",img);
namedWindow("test");
imshow("test",img);
waitKey(0);
}
终于,在Release模式下,我可以成功读写图片了。但是,在调试模式下写入失败。错误信息是:
更新
imread在debug模式下工作,比如我把slot函数改成:
void MainWindow::on_pushButton_clicked()
{
Mat img;
img=imread("F:\\My_Desktop\\foot1.jpg",0);
namedWindow("test");
imshow("test",img);
waitKey(0);
imwrite("F:\\My_Desktop\\result.jpg",img);
}
我可以在调试模式下成功加载和imshow图像,但是当我关闭窗口时,发生了同样的错误。
lib文件夹内容:
我刚刚看到类似我的问题 similar problem ,但它无法解决我的问题。
【问题讨论】:
-
imread在调试模式下会失败吗?您在实际程序中读取(和写入)的文件的路径是否也是绝对的? -
您需要链接到调试库(以“d”结尾)。使用
LIBS+=D:\Work_Software\OpenCV3.1\opencv\build\x64\vc12\lib\*d.lib