文章目录
- 1. 简介
- 2. 环境配置(OpenCV)
- 3. 环境配置(OpenCV + OpenCV_contrib)
- 3.1 CMake 3.18.0
- 3.2 配置流程
- 4. 总结
1. 简介
本文将介绍在Windows 10下配置C++版本的OpenCV编程环境,其中Visual Studio 2019的下载链接、OpenCV的下载链接、OpenCV_contrib的下载链接,注意OpenCV和OpenCV_contrib的版本要对应一致(如本文均使用3.4.10)。安装完OpenCV后,将<opencv-root-dir>/build/x64/vc15/bin
目录添加到系统的环境变量下。
2. 环境配置(OpenCV)
打开Visual Studio 2019,创建新项目 => C++空项目 => 项目名称(cppDemo) => 创建。然后根据视图 => 其他窗口 => 属性管理器命令打开属性管理器:
这里,我们以Debug | x64
为例,其他选择的配置类似,右键选择属性打开属性页:
在属性页左侧选中VC++目录,编辑右侧的包含目录项,并将以下内容添加进去:
其中,E:\opencv
为OpenCV安装的根目录。依然在属性页左侧选中VC++目录,编辑右侧的库目录,并将以下内容添加进去:
其中,E:\opencv
为OpenCV安装的根目录。然后在属性页左侧选中链接器 => 输入,编辑右侧的附加依赖项,并将以下内容添加进去:
其中,3410对应了前面使用的OpenCV版本是3.4.10、末尾字母d对应前面选择的DeBug选项。该文件可以在<opencv-root-dir>/build/x64/vc15/lib
目录下找到。更改上面的运行配置,与前面选择的Debug | x64
对应:
然后新建测试文件main.cpp,内容如下:
#include<iostream>
#include<opencv2/opencv.hpp>
// 当cv和std命名空间存在公共函数,如foo使用cv::foo或std::cv调用
using namespace cv;
using namespace std;
int main(int argc, char** argv) {
Mat img = imread("demo.jpg"); // demo.jpg位于main.cpp所在目录下
if (img.empty()) return -1;
// 打开一个名为Example的显示窗口,且其大小自适应输入图片大小
namedWindow("Example", WINDOW_AUTOSIZE);
// 新建一个窗口(自动调用前面的namedWindow函数,如果没有则调用默认函数)
imshow("Example", img);
// 系统暂停并等待键盘事件
waitKey(0);
// 窗口销毁
destroyWindow("Example");
return 0;
}
运行成功,在屏幕中将会显示目标图像。
3. 环境配置(OpenCV + OpenCV_contrib)
上述方法仅能配置OpenCV环境,而如果想要使用OpenCV中的扩展库,则需要使用CMake手动编译OpenCV_contrib。
3.1 CMake 3.18.0
官网下载相应版本,安装完成后需要配置环境变量。在此电脑=>高级系统设置=>环境变量的系统变量部分的Path添加的
目录。使用命令行窗口测试是否安装成功:
3.2 配置流程
打开CMake(cmake-gui),在Where is the source code一栏选择前面OpenCV解压目录下的sources文件夹目录,如<opencv-root-dir/sources>
;在Where to build the binaries处任意选择一个目录用于存放编译后的所有文件,如<opencv-root-dir/opencv_build>
。
然后,点击Configure打开配置界面,Specify the generator for this project一栏选择Visula Studio 16 2019
;Optional platform for generator一栏选择x64
;然后点击Finish。
界面所有栏变红,然后将OPENCV_EXTRA_MODULES_PATH栏的值改为OpenCV_contrib目录下的modules目录,如<opencv-contrib-root-dir/modules>
;并将BUILD_opencv_world一栏打上勾。最后点击Configure。这时界面的红色全部消失,然后点击Generate。
打开opencv_build
目录,并使用Visual Studio 2019打开OpenCV.sln
文件。
依次打开视图 => 解决方案资源管理器,在CMakeTargets文件夹下右击ALL_BUILD => 生成项并点击生成;无错误产生后,右击INSTALL => 生成完成整个编译流程。最后,将<opencv-root-dir>/opencv_build/x64/vc16/bin
目录添加到系统的环境变量下。
打开Visual Studio 2019,创建新项目 => C++空项目 => 项目名称(cppDemo) => 创建。然后根据视图 => 其他窗口 => 属性管理器命令打开属性管理器,同上。
包含目录选择:
<opencv-root-dir>\opencv_build\install\include
<opencv-root-dir>\opencv_build\install\include\opencv
<opencv-root-dir>\opencv_build\install\include\opnecv2
库目录选择:
<opencv-root-dir>\install\x64\vc16\lib
链接器 => 输入选择:
opencv_world3410d.lib
然后新建测试文件main.cpp,内容如下:
#include<opencv2/opencv.hpp>
#include<opencv2/xfeatures2d.hpp>
using namespace cv;
using namespace std;
int main(int argc, char** argv) {
Mat img = imread("demo.jpg", 1);
Ptr<Feature2D> sift = xfeatures2d::SIFT::create();
vector<KeyPoint> keypoints;
Mat descriptors;
sift->detectAndCompute(img, noArray(), keypoints, descriptors);
drawKeypoints(img, keypoints, descriptors, Scalar(0, 255, 255));
imshow("Result", descriptors);
waitKey(0);
return 0;
}
4. 总结
本文介绍了在Windows 10下配置C++版本的OpenCV编程环境,并使用代码测试了其正确性。
完