vs中imshow函数报错_VS/opencv 测试程序和程序的报错问题解决

安装好VS以及配置好opencv的库文件路径等配置后,原本以为就可以轻松的运行第一个简单的测试程序。

但结果并不像我想的那么顺利,copy了测试代码后准备运行时发现了报错信息。

首先给的是遇到两个很常见的BUG,然后给出测试程序的源代码:

我建立的第一个打开图片的测试程序如下:

vs中imshow函数报错_VS/opencv 测试程序和程序的报错问题解决_第1张图片

这是我的第一个运行的程序,我是直接copy别人的源代码粘贴上去的,心想应该没什么问题。因为看着别人是运行出来的。

但是还没编译就有红色无法识别代码的波浪线了。

网上找了很多别人的解决方法才解决问题,主要原因是差一个头文件:#include 

我估计是因为VS里对一些字符或者变量名的识别需要一个头文件来支持。

(还有一个重要的问题是Debug的选项后面一定要选×64,因为初始配置是选的×64)不然可能一个头文件都不能识别

vs中imshow函数报错_VS/opencv 测试程序和程序的报错问题解决_第2张图片

下面开始编译时又出了问题:

vs中imshow函数报错_VS/opencv 测试程序和程序的报错问题解决_第3张图片

程序是正确运行了,窗口显示不能加载图片。查找原因是文件的路径有问题,

直接复制粘贴的代码路径显示时,前面多了两个“??”。但是在代码里完全显示不出来。

文件路径一定要自己手敲一遍。不然出问题了都不知到哪里的bug

还有就是程序执行时,有调试和不调试两种。不调试执行可以直接出结果,调试运行时会报一个错误

无法查找或打开PDB文件。网上说直接不调试执行一样可以用,目前我还找不到原因。

vs中imshow函数报错_VS/opencv 测试程序和程序的报错问题解决_第4张图片

下面是给出的源代码:(强烈建议自己敲一遍,不然不知道会出现什么BUG)

#include

#include

#include

using namespace cv;

int main(int argc, char** argv) {

Mat src = imread("L:/11.jpg");

if (src.empty()) {

printf("could not load image...\n");

return -1;

}

namedWindow("test opencv setup ",CV_WINDOW_AUTOSIZE);

imshow("test opencv setup", src);

waitKey(0);

return 0;

}

效果图:

vs中imshow函数报错_VS/opencv 测试程序和程序的报错问题解决_第5张图片

最后引用很经典的一段总结:

眼过千遍不如手过一遍!

书看千行不如手敲一行!

手敲千行不如单步一行!

单步源代码千行不如单步Debug版对应汇编一行!

单步Debug版对应汇编千行不如单步Release版对应汇编一行!

你可能感兴趣的:(vs中imshow函数报错)