“MicroMV 距离解算”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
(创建页面,内容为“=='''基本原理'''== *本算法依靠近大远小的透视原理,使用物体在画面中的像素宽度结合三角函数计算出物体到摄像头距离。(…”)
 
第15行: 第15行:
 
[[File:microMVdistanceCaculate2.png||600px|center]]
 
[[File:microMVdistanceCaculate2.png||600px|center]]
  
 +
=='''基础距离算法'''==
 +
已知ACEF,首先求出物体占视野角度B
  
 +
根据:𝐵/𝐴 = 𝐸/𝐹      得到:B=(𝐴∗𝐸)/𝐹
  
 +
然后求出距离D
 +
 +
根据:tan⁡〖𝐵/2〗 = (𝐶/2)/𝐷        得到:D = 𝐶/(2 tan⁡〖(𝐴∗𝐸)/2𝐹〗 )
 +
 +
[[File:microMVdistanceCaculate3.png||600px|center]]
 +
 +
=='''综合校准算法'''==
 +
已知物体在摄像头画面中只会变小(被部分遮挡)不会变大,所以在计算阶段分别根据物体的宽度和高度计算出两个距离值。当物体像素宽高比与真实宽高比近似时,两个距离值同样可靠;当物体像素宽高比明显大于真实宽高比时,宽度计算得出的距离值更加可靠;当物体像素宽高比明显小于真实宽高比时,高度计算得出的距离值更加可靠;
 +
 +
[[File:microMVdistanceCaculate4.png||600px|center]]
  
 
<source lang="py">
 
<source lang="py">

2018年5月16日 (三) 10:29的版本

基本原理

  • 本算法依靠近大远小的透视原理,使用物体在画面中的像素宽度结合三角函数计算出物体到摄像头距离。(镜头畸变会影响计算精度)
MicroMVdistanceCaculate1.png

关键参数

(其中A、C、F是已知常量)

摄像头视野范围A度
物体占视野B度
物体真实宽度C毫米
物体距离摄像头D毫米
物体占画面像素宽度E
摄像头分辨率宽度F
MicroMVdistanceCaculate2.png

基础距离算法

已知ACEF,首先求出物体占视野角度B

根据:𝐵/𝐴 = 𝐸/𝐹 得到:B=(𝐴∗𝐸)/𝐹

然后求出距离D

根据:tan⁡〖𝐵/2〗 = (𝐶/2)/𝐷 得到:D = 𝐶/(2 tan⁡〖(𝐴∗𝐸)/2𝐹〗 )

MicroMVdistanceCaculate3.png

综合校准算法

已知物体在摄像头画面中只会变小(被部分遮挡)不会变大,所以在计算阶段分别根据物体的宽度和高度计算出两个距离值。当物体像素宽高比与真实宽高比近似时,两个距离值同样可靠;当物体像素宽高比明显大于真实宽高比时,宽度计算得出的距离值更加可靠;当物体像素宽高比明显小于真实宽高比时,高度计算得出的距离值更加可靠;

MicroMVdistanceCaculate4.png

返回MicroMV目录页面