最近在做视觉SLAM,其中需要用到相机的标定。针对ZED2双目相机,在其SDK中融合了标定的程序,但其标定程序得到的是左右相机的单目标定结果,并不是SLAM最终需要的。因此需要通过opencv进行标定。
我的电脑中安装的是vs2013,opencv的版本是opencv3.4.2。vs和opencv直接从官网下载即可。opencv3.4.2下载后解压得到的结果如下。
打开build\x64可以看到vc14、vc15,但是对应vs2013的是vc12,这里并没有vc12,因此需要通过cmake生成一个(cmake可以直接从官网下载)。具体步骤如下:
cmake生成vc12
(1)在opencv路径下新建文件夹,命名为opencv_vs2013_x64
(2)从cmake\bin中打开cmake-gui,配置路径
(3)点击左下角Configure,选择编译器(Visual Studio 12 2013 Win64),Configure done完成之后,选上WITH_CUDA,再次点击Configure,等待Configure done
(4)点击左下角Generate,等待Generate done
(5)点击Open Project,之后就会进入VS2013的界面
(6)在vs中的解决方案资源管理器中找到CMakeTargets,下拉会看到ALL_BUILD,右键选择build(生成),等待build结束。然后右键INSTALL,选择build。根据需要选择在debug下或release下build。在这一步如果遇到报错,根据报错自行修改即可~
(7)之后在…\opencv_vs2013_x64\install\x86中可以看到vc12,生成成功
配置电脑环境变量
在生成vc12后,需要配置一下电脑的环境变量,使opencv可以顺利运行编译。
(1)首先找到我的电脑,右键属性,选择高级系统设置,点击环境变量
(2)选择系统变量里的Path,双击
(3)新建环境变量,路径设置为刚刚生成的vc12\bin
配置vs2013工程的环境
完成以上步骤之后,即可打开vs2013创建opencv项目进行下一步配置
(1)新建win32控制台应用程序工程test
(2)点击工程名右键-属性-配置属性-VC++目录
打开包含目录,添加include,include/opencv,include/opencv2三个目录
(3)添加库目录:install\x86\vc12\lib
(4)仍然在工程属性页,点击配置属性-链接器-输入,编辑附加依赖项,添加需要的库文件。其中,DEBUG模式的都是*d.lib,RELEASE的是*.lib。库文件均在\opencv_vs2013_x64\install\x86\vc12\lib目录下
(5)为避免出现无法启动程序的错误,把以下文件复制到系统盘。以下文件位于opencv_vs2013_x64\install\x86\vc12\bin,如果用debug模式的就复制类似*d.dll,如果用release模式的就复制类似*.dll。复制到系统盘具体位置为:C:\Windows\System32(32位),C:\Windows\SysWOW64(64位)
测试OPENCV
在test工程源文件中新建C++文件,输入以下代码
#include<iostream>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
int main()
{
Mat image = imread("Z:\\dog.jpg"); //imread中的参数为文件的绝对位置,将自己的测试文件替换
imshow("picture", image);
waitKey(0);
// printf("hello world \n");
// system("pause");
return 0;
}
编译运行后得到结果
测试成功
参考博客链接