【问题标题】:Conversion from pixel to general Metric(mm, in)从像素转换为通用公制(mm,in)
【发布时间】:2019-05-17 18:10:01
【问题描述】:

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

提前致谢。

【问题讨论】:

  • 如果没有更多信息,无法回答此问题。图像是如何获得的?这是在受控环境中吗?有单一的成像平面吗?
  • 您需要至少一个来自您拍摄照片的真实场景的已知维度。例如,如果您有从相机到其中一个物体的距离(并且还有相机的焦距),您可以计算现实世界圆的半径。

标签: python opencv image-processing


【解决方案1】:

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

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

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

一种更自动化的方法是使用已知尺寸的特定图案(例如棋盘)。可以在图像中自动检测出来,进行同样的变换。

【讨论】:

  • 谢谢,我可以得到那些圆圈的尺寸,我可以从中计算出 1 px 等于多少。感谢您提供如此好的解释,我可以解决我的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-27
  • 1970-01-01
相关资源
最近更新 更多