Visual Studio 2019下环境配置
课上提供的环境是Linux, 还需要安装Vitrual Box和创建虚拟机,省事就直接在Windows系统下Visual Studio下操作了。
简单的环境配置:
- 下载Eigen 的库
- 在工程属性中添加目录: 2处地方
- 注意: 刚添加完后,我新建main.cpp后, 引入头文件
#include <eigen3/Eigen/Core> //提示未找到
#include <eigen3/Eigen/Dense> //提示未找到
路径也没有设置错啊,但是就是找不到。
直到看到这篇博文Visual Studio2019环境下导入Eigen库。原来设置完路径后需要重新启动VS(真是大坑啊)。再次启动VS后,就没有报错了
作业描述
给定一个点 P=(2,1), 将该点绕原点先逆时针旋转 45◦,再平移 (1,2), 计算出
变换后点的坐标(要求用齐次坐标进行计算)
Code
#include <cmath>
#include <eigen3/Eigen/Core>
#include <eigen3/Eigen/Dense>
#include <iostream>
using namespace std;
int main(void) {
Eigen::Vector3f P(2.0f, 1.0f, 1.0f);
Eigen::Matrix3f matrix_contrarotate_45_and_T(3, 3);
double pi = acos(-1.0);
matrix_contrarotate_45_and_T << cos(45.0 / 180.0 * pi), -sin(45.0 / 180.0 * pi), 1,
sin(45.0 / 180.0 * pi), cos(45.0 / 180.0 * pi), 2,
0, 0, 1;
cout << matrix_contrarotate_45_and_T << endl;
cout << "new Point position\n";
cout << matrix_contrarotate_45_and_T * P << endl;
return 0;
}
其中cos和sin的计算要转换成弧度制
输入结果如下:
0.707107 -0.707107 1
0.707107 0.707107 2
0 0 1
new Point position
1.70711
4.12132
1
Opencv 库编译
作业2中用到了OpenCV
Step 1.下载源码
- 下载OpenCV 源码 OpenCV 4.5.4
- 下载OpenCV_contrib OpenCV_contrib 4.5.4
注意:这两个源码的版本号要一致
Step 2. 使用CMake编译
- 将源码解压后,不要放在有中文路径的目录
- 使用管理员权限打开CMake, 一开始未使用,发现点击Configure时会报错,使用管理员权限打开CMake后,点击Configure未报错。
注意:选择版本,我这里是x64 版本。
为什么要选x64版本原因
“因为代码中有使用std::optional这个特性,这个特性是c++17中才有的,这个坑反应了好久才找到原因。
改完之后发现使用默认的x86设置,std::optional依然会报错,所以选了x64之后,环境就彻底配好了。所以第一步对应的库也要安装64位的。”
- 选择BUILD_opencv_world选项:
这样,最后的库文件是一个dll文件
- 点击Generate
如果成功,显示Generate done.
Install to: C:/Resource/OpenCV/OpenCV_Compile/install
-----------------------------------------------------------------
Configuring done
Generating done
- 编译OpenCV.sln工程
菜单栏->生成->选择生成的项目配置。
注意:这里如果没有安装Python的Debug版本,在编译的时候,会报错。可以先看下Step3,建议直接勾选Release版本进行编译
Step3: 编译报错
LINK : fatal error LNK1104: 无法打开文件“python310_d.lib”
报错的原因参考无法打开pythonxxx_d.lib
所以应该是安装Python的时候,没有选择Debug版本。为了省事,我这里在编译的时候,也先不选择Debug版本了。即在选择项目配置的时候,不勾选Debug版本。
重新编译后成功