我知道已经有一些关于这个主题的答案,但我不太清楚如何测量相机和物体之间的距离。
我的目标:
我设法使用OpenCV跟踪一个带有颜色检测的红球。 现在我试图将激光指向红球中间。激光在移动时应始终跟随红色球。我正在使用小型伺服电机来转动激光器。
我在想是否可以测量物体和相机之间的距离,我将能够计算伺服需要转动的角度......
我试图关注Cameron Lowell Palmer's post。
我做了什么:
我校准了我的Pi Camera V2
f_x:463.64
f_y:463.64
c_x:319,50
c_y:239.5
原生分辨率= 3280 x 2464(我想?我不知道如何找到这个......)
焦距= 3.00mm(我想?我不知道如何找到它......)
然后我应该能够以像素为单位测量对象大小?我不知道怎么......
有人可以帮我这个吗?
答案 0 :(得分:0)
您是否可以通过将像素大小与对象(红球)大小相关联来推断近似距离?回到初等代数,你可以根据它与物体之间已知的距离来推断远处某物的高度。在这种情况下,您已知的是对象大小,像素大小和焦距。
答案 1 :(得分:0)
我设法得到了距离,但它并不是那么精确。
我做了什么:
距离= FocalLength,单位为mm *(实际物体宽度,单位为mm)/(虚拟对象宽度,单位为px)
结果图片:Result
距离表(运行代码段):
<table border="1" style="text-align: center">
<thead>
<tr>
<th>Real Distance (mm)</th>
<th>Calculated Distance (mm)</th>
</tr>
</thead>
<tbody>
<tr>
<td>100</td>
<td>83</td>
</tr>
<tr>
<td>200</td>
<td>174</td>
</tr>
<tr>
<td>300</td>
<td>275</td>
</tr>
<tr>
<td>400</td>
<td>384</td>
</tr>
<tbody>
</table>
&#13;
现在,我只为结果添加20毫米。如果有人能帮助我获得更准确的测量结果,我将非常感激: - )。