一、前期准备:
首先,你要先安装一个Visual Studio 2017及以上的版本。
然后 本文所需所有软件及相关数据均在以下链接内:
链接:https://pan.baidu.com/s/10vLVcM-uavuzZSySA6222g?pwd=1024
提取码:1024
--来自百度网盘超级会员V5的分享
二、CMAKE编译
step1:
将百度网盘内文件全部下载,而后打开下图的exe文件,将OPENCV4.5.1安装,修改一下安装位置,放到一个比较方便的地方
安装完成后的结果为:
包括上述五个文件。
step2:
而后将contrib解压到该文件夹内,并且新建一个newbuild文件夹
step3:
将百度网盘内文件全部下载,解压CMAKE-v.3.23.0,然后在搜索栏搜索CMAKE打开
按照我的样式,把文件选择上。然后点击下面的
然后在选择框内 第一行选择你的VS版本
第二行默认选择x64,然后点击finish
然后等待CMAKE完成configure。
然后你就会发现在参数框内出现了很多红色数据:
在这里我们要进行两个方面的操作
第一方面:
打开OPENCV-newbuild文件夹中的CmakeDownloadlog.txt文件
然后按照上个图片中的信息进行下载(常见的缺少文件已放进百度网盘内)
第二方面:
在search内搜索:(1)找到:OPENCV_EXTRA_MODULES_PATH项,选择opencv_contrib3.4.14文件夹下的modules文件夹。(2)找到:CMAKE_INSTALL_PREFIX项,选择VS2019编译完成后的输出目录。(3)找到BUILD_opencv_word项,勾选。找到OPENCV_ENABLE_NONFREE项,勾选。
然后再次点击configure,待到所有红色消失变为白色,并且没有报错,再点击Generate。
三、Visual Studio生成
然后就会进入Visual Studio 的编程界面,“Debug”“X64”
然后点击“生成”---“重新生成解决方案”
而后静待一段时间,让VS重新生成解决方案(此过程受硬件性能约需15min-60min)
其结果如上图所示,仅需保证没有失败的就行了。
然后点击“生成”菜单下的“批生成…”,勾选INSTALL的Debug模式,在生成。
其结果为:
进行完上述两步之后,如下图所示,回过头来将Debug改为Release,重复上两步操作:先重新生成解决方案,然后在INSALL的Release模式生成。
进行完上述步骤之后,若都没有报错,则可以查看一下在刚开始时候新建的“newbuild”文件夹,Visual Studio已经将所需文件生成完备。
四、对C++项目配置OPENCV+contrib
新建一个项目,选择C++桌面控制台应用(不同的版本叫的名字不一样,只要有关键词C++和 控制台即可)
进入新建的项目中,先找到属性管理器,如果页面上没有,可以按照如下操作:
点击视图------其他窗口-------属性管理器
上图为属性管理器,不要管每个文件夹里有几个文件,只要有Debug|X64 和Release|X64这俩文件夹即可。
在属性管理器中找到Debug|X64 右键,添加新项目属性表
命名为DebugX64
然后点击添加。
右键DebugX64,打开属性
点击VC++目录,对包含目录和库目录进行修改:
包含目录修改为下面这俩
请注意是在newbuild文件夹下的(若有的同志以前安装过OPENCV,请注意,这里的操作流程跟安装OPENCV一样,但是各种地址是不一样的,一定注意是在newbuild内的,并且,并不需要额外添加OPENCV的目录信息,照我这做就行。)
库目录为:
然后点击链接器中的输入 找到 附加依赖项
附加依赖项建议修改为绝对地址,
请注意,Debug模式的附加依赖项最后是以d结尾的,Release模式后面没有d。然后一路确定即可。
到此为止,Debug模式已经配成功了。
可以检验一下:
#include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main()
{
Mat image; //创建一个空图像image
image = imread("D://lena.png", IMREAD_COLOR); //读取文件夹中的图像 此处IMREAD_COLOR为加载彩色影像,默认可不写。
//检测图像是否加载成功
if (image.empty()) //检测image有无数据,无数据 image.empty()返回 真
{
cout << "Could not open or find the image" << endl;
return -1;
}
namedWindow("输入的图片", WINDOW_NORMAL); //创建显示窗口,不加这行代码,也能显示,只不过窗口大小不能改变,这里的WINDOW_NORMAL参数使得我们可以随意调节窗口大小
imshow("输入的图片", image); //在窗口显示图像
imwrite("2.png", image); //保存图像为png格式,文件名称为1
waitKey(0); //暂停,保持图像显示,等待按键结束
return 0;
}
输出结果如下:
若输出结果没问题,则可以打开文件资源管理器
在文件夹中找到刚刚配好的“DebugX64.props”文件,该文件为Debug模式的配置信息。
(我的图中是已经配好的,不叫这个名字,但都一样)
然后复制该文件,直接粘贴到目前看到的这个文件夹内,并把粘贴后的文件改名为“ReleaseX64”即可。(就如上图中的ReleaseX64-contrib)
然后回到Visual Studio中,在属性管理器中右键Release|X64 -------添加现有属性表,选择刚刚粘贴并改名的文件
随后右键ReleaseX64----属性,将附加依赖项中的文件结尾的“d”去掉即可。
然后切换到Release模式,再试试代码
正常输出即可。
然后再进入文件资源管理器中,将刚刚的DebugX64.props和ReleaseX64.props复制到一个方便的位置,如果下次再想要新建文件进行OPENCV方面的操作时候,仅需在Debug|X64和Release|X64中添加现有属性表即可。