从像素转换为公制(mm,in)

时间:2019-05-17 18:10:01

标签: python opencv image-processing

我正在使用openCV处理图像,并使用houghcircles来检测被测图像中的圆,并使用欧几里德距离来计算其中心之间的距离。 由于这将以像素为单位,因此我需要以毫米或英寸为单位的绝对距离,有人可以让我知道如何做到这一点

谢谢。

1 个答案:

答案 0 :(得分:0)

成像过程意味着通过镜头对真实3D世界进行2D投影。在此过程中,会丢失大量信息(例如,三维),并且转换取决于镜头属性(例如,焦距)。

以像素为单位的距离与物理距离之间的转换取决于深度(相机和物体之间的距离)和镜头。复杂但更通用的方法是估计深度(有专门的算法可以在某些条件下做到这一点,但需要多个摄像机/视角)或使用可以测量深度的深度摄像机。一旦知道了深度,在考虑了透镜投影的影响之后,就可以做出估计了。

您没有提供有关设置的太多信息,但是可以通过实验来测量转换。您只需为已知尺寸的物体拍摄图片,然后确定一个像素的物理尺寸(例如,如果该物体为10x10厘米,并且在图片中具有100x100px,则10px为1mm)。这在很大程度上取决于物体与相机的距离。

一种更加自动化的方法是使用已知尺寸的特定图案(例如棋盘格)。可以在图像中自动检测到它,并且可以执行相同的转换。