关于单目测距的那些事

news/2024/7/21 5:20:48 标签: 计算机视觉, opencv, 图像处理

使用相似三角形计算物体到相机的距离

假设物体的宽度为 W(单位mm),将其放到离相机距离为 D (单位mm)的位置,然后对物体进行拍照。在照片上量出物体的像素宽度 P(单位pixels),于是可以得出计算相机焦距 F 的公式:

 切记:这里计算出的F并非镜头标称焦距,F的单位根本不是mm,而是pixels.

比如我在相机前 24 英寸距离(D=24 inches)的位置横着放了一张 8.5 x 11 英寸(W=11 inches)的纸,拍照后通过图像处理得出照片上纸的像素宽度 P=248 pixels。所以焦距 F 等于:

此时移动相机离物体更近或者更远,我们可以应用相似三角形得到计算物体到相机的距离的公式:

原理大概就是这样,就是简单的相似三角形求解。

这种方法精度低,且相机若非垂直拍摄,精度更低,适合距离估算


http://www.niftyadmin.cn/n/600351.html

相关文章

是否有必要每个接口都定义个vo_人人都是 API 设计师:我对 RESTful API、GraphQL、RPC API 思考...

原文地址:梁桂钊的博客博客地址:http://blog.720ui.com欢迎关注公众号:「服务端思维」。一群同频者,一起成长,一起精进,打破认知的局限性。有一段时间没怎么写文章了,今天提笔写一篇自己对 API …

计算轮廓的最大内接矩形

1,原理 基于中心扩展算法,给定一个初始锚点,往四个方向向外拓展,每个方向在拓展时遇到轮廓边界则停止。 获取的矩形是不带旋转的,且能否准确找到最大内接矩形,跟初始锚点的位置选取有一定关系。 2,代码 代码分为2部分,原理一样,实现方式不同。 代码(1): #inclu…

计算机应用基础课程代码,计算机应用基础课程标准

计算机应用基础课程标准《计算机应用基础》课程标准课程代码:适用专业:所有非计算机专业学时:52学分:3开课学期:第一或第二学期第一部分前言1.课程性质与地位《计算机应用基础》是全院的一门公共基础课程,课…

Java入门--认识理解Java中native方法

Java不是完美的,Java的不足除了体现在运行速度上要比传统的C慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能。 可以将native方法比作Java程序同C程序的接口&am…

OPenCV将图片转为透明背景

思路: 将彩色图转为BGRA格式,改变A通道(透明度) int main(int argc, char* argv[]) { Mat src imread("logo.png"); //imshow("src", src); Mat result; cvtColor(src, result, COLOR_BGR2BGRA); for …

kernel开启启动log_MySQL8开启ssl加密

1 概述 MySQL从5.7开始默认开启SSL加密功能,进入MySQL控制台后输入status可以查看ssl的状态,出现下图表示在使用ssl: 另外,ssl加密需要密钥与证书,可以使用openssl手动生成或使用mysql_ssl_rsa_setup自动生成,这里使用了mysql_ssl_rsa_setup. 下面从安装开始.2 安装(可选)系统C…

python数据导入spss_关于多元线性回归分析——PythonSPSS

原始数据在这里 1.观察数据 首先,用Pandas打开数据,并进行观察。 import numpy import pandas as pd import matplotlib.pyplot as plt %matplotlib inline data pd.read_csv(Folds5x2_pp.csv) data.head() 会看到数据如下所示:这份数据代表…

BigInteger大整数类——实例和源码(相当经典)

<iframe align"top" marginwidth"0" marginheight"0" src"http://www.zealware.com/46860.html" frameborder"0" width"468" scrolling"no" height"60"></iframe>BigInteger大整…