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...
");
                return -1;
    }
        namedWindow("test opencv setup ",CV_WINDOW_AUTOSIZE);
            imshow("test opencv setup", src);

            waitKey(0);
        return 0;
}

效果图:

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

                          眼过千遍不如手过一遍!
                         书看千行不如手敲一行!
                         手敲千行不如单步一行!
                         单步源代码千行不如单步Debug版对应汇编一行!
                         单步Debug版对应汇编千行不如单步Release版对应汇编一行!

 

 

原文地址:https://www.cnblogs.com/Jack-Elvis/p/11255644.html