第5篇 如何计算两个坐标点距离--opencv图像中的两个点

在地理和几何学中,大家经常需要计算两个坐标点之间的距离。此计算在实

际应用中非常常见,如导航系统、地图应用等。

  1. 欧氏距离--opencv图像中的两个点

欧氏距离是计算两个点之间最常见的方法之一。它是通过计算两个点在空间中

的直线距离来衡量的,可以将两点的坐标表示为

(x1, y1)和(x2, y2)。欧氏距离的计算公式如下:

distance = sqrt((x2 - x1)^2 + (y2 - y1)^2)

这个公式的基本思想是利用两点之间的直角三角形的斜边来计算距离。我们通

过将两个点的坐标代入公式来得到点之间的距离。

如:通过opencv获取到图像中的矩形轮廓,得到4个点,计算面积可找到最大的矩形

复制代码
ouble dis1 = Math.Sqrt( Math.Pow((box[1].X - box[0].X),2)+ Math.Pow((box[1].Y - box[0].Y), 2));
                    double dis2 = Math.Sqrt(Math.Pow((box[2].X - box[1].X), 2) + Math.Pow((box[2].Y - box[1].Y), 2));
                    double area1 = dis1 * dis2;
  1. 曼哈顿距离

曼哈顿距离是另一种常见的距离度量方法。是通过计算两个点在网格上水平

和垂直方向的距离之和来衡量的。可以将两点的坐标表示为

(x1, y1)和(x2, y2)。

曼哈顿距离的计算公式如下:

distance = |x2 - x1| + |y2 - y1|

这个公式的基本思想是将两个点之间的距离表示为在网格上行走的步数。我们

通过将两个点的坐标代入公式来计算两点之间的距离。

  1. 地球表面的距离

在计算地球上两个点之间的距离时,大家需要考虑地球的曲率。因为地球是一

个近似于椭球的球体,所以我们不能简单地使用平面几何中的直线距离公式。

为了计算地球表面上两点之间的距离,我们可以使用

Haversine

公式。这个公

式基于经纬度来计算两点之间的弧长,并将其转换为距离。Haversine公式的计算

公式如下:

a = sin^2((lat2 - lat1) / 2) + cos(lat1) * cos(lat2) * sin^2((lon2 -

lon1) / 2)

c = 2 * atan2(sqrt(a), sqrt(1-a))

distance = R * c

其中,lat1和lon1表示第一个点的纬度和经度,lat2和lon2表示第二个点的纬度和经度。R

是地球的半径,可以根据需要选择不同的单位(比如千米、英里

等)。

相关推荐
爱刷碗的苏泓舒11 小时前
PPP-AR 中的参考星选取:数学原理、评价指标与切换处理
算法·gnss·模糊度固定·ppp-ar·星间单差·参考星·卫星端偏差
zhumin72611 小时前
舆情聚类与政府投诉联动分析:基于时间序列的社会治理框架
机器学习·数据挖掘·聚类
陆枫Larry12 小时前
CPU 和 GPU 的核心区别与适用场景
人工智能
Aa998833412 小时前
AI视觉检测设备厂家的技术选型框架——密封件和磁材的缺陷分类与光学成像原理
人工智能
吴佳浩12 小时前
今天我们讲讲大模型的“核心”技术:蒸馏(Model Distillation)
人工智能·llm·agent
阿里云大数据AI技术12 小时前
阿里云 ES AI 引擎版:面向 Agent 场景,为亿级租户、千亿规模向量设计的搜索引擎
人工智能·elasticsearch·agent
郭小铭12 小时前
[开源] 做了一个本地优先的多 Agent 市场研究桌面:Evidence Loom
人工智能
星栈12 小时前
翻完 Pi 源码:它和 Codex、Claude Code 有何不同
人工智能·agent
_Jimmy_12 小时前
AI应用开发工程师面试题库
人工智能·python·深度学习·机器学习·知识图谱
阿里云大数据AI技术12 小时前
FalconSeek 技术解析:阿里云 Elasticsearch 云原生内核如何让查询性能飙升600%
人工智能·elasticsearch