VS/opencv 测试程序和程序的报错问题解决
安装好VS以及配置好opencv的库文件路径等配置后,原本以为就可以轻松的运行第一个简单的测试程序。
但结果并不像我想的那么顺利,copy了测试代码后准备运行时发现了报错信息。
首先给的是遇到两个很常见的BUG,然后给出测试程序的源代码:
我建立的第一个打开图片的测试程序如下:
这是我的第一个运行的程序,我是直接copy别人的源代码粘贴上去的,心想应该没什么问题。因为看着别人是运行出来的。
但是还没编译就有红色无法识别代码的波浪线了。
网上找了很多别人的解决方法才解决问题,主要原因是差一个头文件:#include <opencv2/highgui/highgui_c.h>
我估计是因为VS里对一些字符或者变量名的识别需要一个头文件来支持。
(还有一个重要的问题是Debug的选项后面一定要选×64,因为初始配置是选的×64)不然可能一个头文件都不能识别
下面开始编译时又出了问题:
程序是正确运行了,窗口显示不能加载图片。查找原因是文件的路径有问题,
直接复制粘贴的代码路径显示时,前面多了两个“??”。但是在代码里完全显示不出来。
文件路径一定要自己手敲一遍。不然出问题了都不知到哪里的bug
还有就是程序执行时,有调试和不调试两种。不调试执行可以直接出结果,调试运行时会报一个错误
无法查找或打开PDB文件。网上说直接不调试执行一样可以用,目前我还找不到原因。
下面是给出的源代码:(强烈建议自己敲一遍,不然不知道会出现什么BUG)
#include <opencv.hpp>
#include <iostream>
#include <opencv2/highgui/highgui_c.h>
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;
}
效果图:
最后引用很经典的一段总结:
眼过千遍不如手过一遍!
书看千行不如手敲一行!
手敲千行不如单步一行!
单步源代码千行不如单步Debug版对应汇编一行!
单步Debug版对应汇编千行不如单步Release版对应汇编一行!