【发布时间】:2017-08-30 01:17:18
【问题描述】:
我已校准相机和未失真的图像,图像上的对象已二值化,仅显示轮廓。然后我使用矩形来获取对象的尺寸 - >我有像素距离。相机位置固定,校准后与物体的距离也固定。
红色矩形的大小 ~ 81×630 像素。
有没有办法仅使用 OpenCV 校准将像素转换为毫米,或者我应该测量具有已知尺寸的对象的像素大小?
【问题讨论】:
-
你所要求的在物理上是不可能的:除非你知道焦点和你正在测量的东西之间的距离,否则你不能用单目相机测量东西:1m 宽、2m 远的东西将有与距离 1m 的 2m 对象相同的图像(像素)大小。还是您的问题需要澄清一下?
-
相机总是在同一个地方。我认为由于校准,我将能够测量一些东西,因为校准网格的大小是已知的。
-
@kebs 我认为你的类比出了点问题 - 我无法相信距离较远的较小物体会与较近的较大物体形成相同的角度。
-
@MarkSetchell 糟糕,正确!恰恰相反,我的意思是“2m 宽、2m 远的物体与 1m 远、1m 远的物体具有相同的图像(像素)大小。”
-
您知道镜头的焦距和传感器尺寸(单位为毫米和像素)吗? stackoverflow.com/a/28820333/2836621
标签: c++ opencv measurement