首页 > 其他分享 >OpenCV计算相机与装甲板之间的距离

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

时间:2023-04-15 23:13:28浏览次数:45  
标签:平移 double 矩阵 相机 OpenCV dz dx dy 装甲

这个距离的计算需要建立在得知平移矩阵的计算上,想要了解平移矩阵获取的可以移步: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.求距离

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

标签:平移,double,矩阵,相机,OpenCV,dz,dx,dy,装甲
From: https://www.cnblogs.com/nobodyx/p/17322200.html

相关文章

  • OpenCV图像腐蚀与膨胀(13)
    膨胀与腐蚀是数学形态学在图像处理中最基础的操作。其卷积操作非常简单,对于图像的每个像素,取其一定的邻域,计算最大值/最小值作为新图像对应像素位置的像素值。其中,取最大值就是膨胀,取最小值就是腐蚀。膨胀与腐蚀能实现多种多样的功能,主要如下:消除噪声分割出独立的图像元素,在图像中......
  • OpenCV图像阈值操作(12)
    什么是阈值阈值又叫临界值,是指一个效应能够产生的最低值或最高值。实际上是基于图片亮度的一个黑白分界值,默认值是50%中性灰,即128,亮度高于128(<50%的灰)的会变白,低于128(>50%的灰)的会变黑。从一副图像中利用阈值分割出我们需要的物体部分(当然这里的物体可以是一部分或者整体)。这样......
  • OpenCV图像模糊操作(11)
    模糊原理Smooth/Blur是图像处理中最简单和常用的操作之一使用操作的原因之一就是为了给图像预处理时候减低噪声图像噪声是指存在于图像数据中的不必要的或多余的干扰信息Smooth/Blur操作原理是数学的卷积运算,根据不同卷积运算公式,划分了多种图像滤波方式图像滤波:指的是在尽量保留......
  • OpenCv单模版多目标匹配
    OpenCv单模版多目标匹配单模版匹配出现的问题一、关于单模版匹配,我一开始用的是光线较暗的图,结果根据模版匹配到的位置并不正确。我后来想用阈值把图形的特征提取出来,在把模版的特征和原图的特征进行比较,如下:importcv2img=cv2.imread('/Users/duanhao/Desktop/photo/liuk......
  • [OpenCV] VS 2022 中的配置
    1、下载windows版本的opencv(默认vs已经下载)下载链接: ReleasesArchive-OpenCV 2.创建一个桌面工程随后打开【视图】-【属性管理器】找到下图   如果没有这个选项,下载链接: MSBuild.zip_免费高速下载|百度网盘-分享无限制(baidu.com) 密码:9527,存放到C:\U......
  • Opencv中Mat矩阵相乘——点乘、dot、mul运算详解
    Mat矩阵点乘——A*BOpencv重载了运算符“*”,姑且称之为Mat矩阵“点乘”,其中一个重载声明为:CV_EXPORTSMatExproperator*(constMat&a,constMat&b);点乘说明:1. A*B是以数学运算中矩阵相乘的方式实现的,即Mat矩阵A和B被当做纯粹的矩阵做乘法运算,这就要求A的列数等 ......
  • python opencv putText
    pythonopencvputText importcv2#Loadimageimg=cv2.imread("image.jpg")#Definetexttodrawtext="Hello,World!"#Definepositiontodrawtextatposition=(50,50)#Definefonttype,scale,color,andthicknessfont......
  • 视觉SLAM十四讲——有关相机运动的汇报
    视觉SLAM十四讲——有关相机运动的汇报大概用了一个月的时间看完slam十四讲,里面很多内容算是填坑了很多以前遇到的不懂的点,并且脑海里也大致有了一个关于SLAM的框架,现在就这篇文章将其中相机运动估计的部分进行一个介绍。SLAM是什么?SLAM的英语全称是SimultaneoursLocalizatio......
  • opencv-python 4.16. 基于GrabCut算法的交互式前景提取
    理论GrabCut算法由英国剑桥微软研究院的CarstenRother,VladimirKolmogorov和AndrewBlake设计。在他们的论文:"GrabCut":interactiveforegroundextractionusingiteratedgraphcuts中提出了一种基于最小用户交互的前景提取算法,其结果为GrabCut。从用户的角度来看,它是如何工......
  • C++,OpenCV鼠标操作(8)
    鼠标事件响应voidsetMouseCallback(constString&winname,MouseCallbackonMouse,void*userdata=0);/******************************************************************** winname: 监听窗口名称* onMouse: 鼠标事件回调函数* userdata: 递给回调函数的可......