初次在VS2019中使用OpenCV

初次在VS2019中使用OpenCV

这次由于要在大作业中用到图像处理,因此想直接导入openCV中的函数,免去自己写函数的麻烦。但在导入后才发现,问题一个接一个。。。

经过一上午的奋斗,总算可以正常运行程序了。这次就把我遇到的所有问题和解决方法写一下,以免之后再做重复劳动。

关于opencv文件下载就不赘述了,网上有很多资源,也可以到这里下载。这位博主把资源都放在了自己的服务器上,比直接从官网上下载快多了。

Windows系统下载exe文件即可,下载好文件后,可以把它安装在随便哪个地方,只要知道它的存放路径即可。我放在了D盘上,绝对路径为D:\。然后就是新建一个VS工程,下面就是我在这个main.cpp中写的代码:

#include <opencv.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui_c.h>

using namespace cv;

#define MAP_FILE_PATH "map.jpg"

int main()
{
	Mat map_img = imread(MAP_FILE_PATH, CV_8UC1);
	imshow("img", map_img);

	waitKey(0);

	return 0;
}

然后就开始了我的受苦之旅。

问题1:无法打开CV源文件

简单来说,就是找不到openCV的文件路径。

在这里插入图片描述

解决方法就是在VS项目中添加文件路径。在项目中右击属性,找到配置属性中的“VC++目录”,如下图所示:

在这里插入图片描述

  • 在包含目录中添加以下路径:

    • D:\opencv\build\include

    • D:\opencv\build\include\opencv2.

  • 在库目录中添加以下路径:

    • D:\opencv\build\x64\vc15\lib.

添加完路径后,就可以看到文件中的红色波浪线全消失了,那叫一个开心o( ̄▽ ̄)ブ。

另外需要注意的是,Debug和Release的配置是分开的,也就是说如果这两个都要用到,那么你都需要配置一遍,配置方法都是一样的。

问题2:VS报错LNK2019“无法解析的外部符号”

当我运行程序的时候,出现了一连串相同的错误,都是LNK2019。

出现这个错误是因为链接器没有配置好导致的,可能有两个原因:

  • 尝试将64位库链接到32位代码,或将32位库链接到64代码;
  • 没有在链接器中添加附加依赖项.

第一个原因检查一下项目的配置属性,把位数调整就可以了,32位的就用x86,64位的就用x64

第二个原因需要添加依赖项。具体步骤如下:

  • 右击属性找到“链接器”,找到“链接器”下的输入,如下图所示

在这里插入图片描述

  • 在附加依赖项中添加lib文件路径

    • 若配置是“debug”,则添加opencv_world420d.lib;
    • 若配置是“release”,则添加opencv_world420.lib.

420是openCV的版本号,根据自己下载的版本选择即可,可以到D:\opencv\build\x64\vc15\lib中查看以上的lib文件。

链接器配置好之后,LNK2019的错误应该就不会出现了。详情可以参照VS常见错误之一:error LNK2019: 无法解析的外部符号

问题3:无法找到opencv_world420d.dll

在完成上述配置后,程序已经可以运行了,VS不会再报错。但在程序运行后,会出现以下系统错误:

在这里插入图片描述

上述错误说明系统找不到opencv_world420.dll文件,但经过搜索后可以发现该文件是存在的,就在D:\opencv\build\x64\vc15\bin下。

在这里插入图片描述

但系统找不到该文件,因此需要我们配置系统的环境变量,写入该文件的存在路径。具体操作如下图所示:

在这里插入图片描述
另外,修改完系统变量后可能仍会报上述错误,此时只需要重启一下VS就可以了。

以上就是我遇到的所有问题,经过一番折腾总算是搞定了,可喜可贺。希望对大家能有所帮助。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值