首页 > 解决方案 > 从像素转换为通用公制(mm,in)

问题描述

我正在使用 openCV 处理图像并使用 houghcircles 检测被测图像中的圆圈,并使用欧几里得距离计算它们的中心之间的距离。由于这将以像素为单位,我需要以毫米或英寸为单位的绝对距离,谁能告诉我如何做到这一点

提前致谢。

标签: pythonopencvimage-processing

解决方案


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

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

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

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


推荐阅读