写在前面:之前一直使用vs2017+opencv的配置,现在体验vs2019+opencv 4.3.0的配置。由于之前的配置相隔很久,忘记很多东西,如今重新配置还是踩了很多坑,记录如下,希望对读者有帮助。
使用说明
PC是Win10家庭版
Visual Studio Community 2019
Opencv用的版本是4.3.0
官方下载地址:https://opencv.org/releases/
目前最新版本是4.3.0
这里选择windows
下载完压缩包名:opencv-4.3.0-vc14_vc15.exe
解压完文件名:opencv
【1】找到我的电脑图标(或者是此电脑),右击。选择属性。
【2】选择高级系统设置,找到环境变量。
【4】点击新建。输入你的安装路径,需要到bin这个文件。
D:\opencv\build\x64\vc15\bin
这个路径的来源如下图,当你一层层点击,直到bin这个文件打开,呈现的一般是类似于下图的样子。这个时候再复制路径到上面的环境变量的添加中。
在路径下找到3个应用程序扩展文件,分别为
opencv_videoio_ffmpeg430_64.dll
opencv_world430.dll
opencv_world430d.dll
将opencv_world430.dll、opencv_videoio_ffmpeg430_64.dll和opencv_world430d.dll复制到下面的目录
C:\Windows\System32
主要是配置包含目录和库目录,以及附加依赖项的添加。
【1】新建一个空项目。
【2】进入项目属性页。在右侧解决方案一栏中点击刚才创建好的项目名,然后右击,选择属性。可以得到如下图的界面。
【动手前提醒】下面需要对包含目录和库目录进行设置,尽量不要选择这种所有配置、所有平台,这样在添加附加依赖项的时候会报错。
正确的做法请往下看。
D:\opencv\build\include
D:\opencv\build\include\opencv2
库目录添加:
需要自己安装的目录
D:\opencv\build\x64\vc15\lib
添加附加依赖项
链接器->输入->附加依赖项,点击右侧的下拉箭头进行编辑,添加:
opencv_world430.lib
可以在如下路径找到
D:\opencv\build\x64\vc15\lib
下图是错误的配置,这样配置会导致release可以正常运行而debug模式总是报错LNK1112 模块计算机类型“x64”与目标计算机类型“x86”冲突或者相反(有一种模式正常,一种模式报错)
正确的配置:
这里需要注意的是debug模式和release分别添加依赖项!!!!
debug模式dll文件中带有字母d
release模式dll文件中不含字母d
对于release模式,只填入一个opencv_world430.lib
对于debug模式只填入一个opencv_world430d.lib
需要选择配置:debug,平台:x64
其他步骤同上。
另外对于右上角配置管理器,需要选择平台X64,有时候报错是这一步没有设置。
添加代码如下
#include <iostream>
#include<opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>//Opencv highgui 模块头文件
#include<opencv2/imgproc/imgproc.hpp>//图像处理头文件
using namespace cv;
int main(){
//功能二:图像模糊
Mat srcImage = imread("D:\\user\\下载\\计算机网络.jpg");//需要自己设置路径,注意使用\\
imshow("均值滤波原始图",srcImage);
Mat dstImage;
blur(srcImage,dstImage,Size(7,7));
imshow("均值滤波效果图",dstImage);
waitKey(0);
}
选择下图所示
debug和x64或者relese和x64,点击本地windows调试器运行项目
测试结果
遇到问题【1】
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK1112 模块计算机类型“x64”与目标计算机类型“x86”冲突 forOpenCV D:\user\文档\Visual Studio 2019\repos\forOpenCV\opencv_world430.lib(opencv_world430.dll) 1
这是因为附加依赖项两个dll文件同时添加到一个模式中,上文中提到过。解决办法是需要含有字母d的dll文件配置到dubug模式,不含有字母d的dll文件配置到release模式。
遇到问题【2】
在x64和release下遇到问题opencv_world430.dll
这个问题是由于没有把
opencv_videoio_ffmpeg430_64.dll
opencv_world430.dll
opencv_world430d.dll
三个dll文件复制到C:\Windows\System32目录下。
解决办法是将其复制到该目录下。
参考博客:
VS2017 + OpenCV3 永久配置,同时 解决 debug模式下不报错release模式报错 或 debug模式下不报错release模式报错 的问题