OpenCV计算相机与装甲板之间的距离

发布时间 2023-04-15 23:06:40作者: XnobodyT

这个距离的计算需要建立在得知平移矩阵的计算上,想要了解平移矩阵获取的可以移步:https://www.cnblogs.com/nobodyx/p/17297244.html


先看一下代码

#include <iostream>
#include <cmath>

using namespace std;

double distance(double x1, double y1, double z1, double x2, double y2, double z2) {
    return sqrt(pow(x1-x2, 2) + pow(y1-y2, 2) + pow(z1-z2, 2));
}

double getDistance(double dx, double dy, double dz) {
    // 相机到物体的距离等于平移矩阵中的位移量的模
    return distance(0, 0, 0, dx, dy, dz);
}

int main() {
    double dx, dy, dz;
    dx = -242.2960250467628;
    dy = -188.0552606030399;
    dz = 362.0516200001606;
    //cout << "请输入相机在x、y、z三个方向上的平移量:" << endl;
    //cin >> dx >> dy >> dz;
    double d = getDistance(dx, dy, dz);
    cout << "相机到物体的距离为:" << d << endl;
    return 0;
}

1.编写求距离的函数

getDistence这个函数不过多解释了大家都可以看懂

2.求距离

这里我已经知道了平移矩阵,所以需要先求解平移矩阵,再调用函数求解距离。