【问题标题】:Which is the best way to estimate measure of photographed things?哪种方法是估算拍摄物体尺寸的最佳方法?
【发布时间】:2016-03-08 01:23:07
【问题描述】:

我的应用程序应该使用欧元硬币作为参考来估计物体的长度(以毫米为单位)。这是一个截图示例:

为了得到所拍摄硬币的直径,我首先计算了一个圆通过表格中这 3 个点的方程

x^2 + y^2 + ax + by + c = 0

然后我得到直径

2 * square_root((a/2)^2 + (b/2)^2 -c)

最后我可以通过以下比例得到红笔的长度:

/* length_estimated_pen (mm) : distance_green_pins (points) = real_diameter_coin (mm) : diameter_on_screen (points) */

let distanceGreen:Double = Double(sqrt(pow(self.greenLocationA.center.x - self.greenLocationB.center.x, 2.0) + pow(self.greenLocationA.center.y - self.greenLocationB.center.y, 2.0)))

let estimatedMeasure:Double = (distanceGreen * Double(ChosenMeter.moneyDiameter)) / diameter

ChosenMeter.moneyDiameter 中存储了所选硬币的实际直径作为参考(通过单击下面的 3 个按钮之一)。

我需要使用 Double 而不是 CGFloat,因为 this 教程求解线性方程组(获得圆方程的 a、b、c 系数)适用于 Double。

问题是红笔的估计长度总是被高估 超过 10 毫米。 我想我应该应用一个校正因子或考虑其他因素使微积分复杂化,但是哪个?你能给我一些提示吗?任何帮助都会对我有用。

【问题讨论】:

  • 您可能应该考虑 iPhone 的倾斜,除非您确定拍照时它会完全平坦。
  • 这正是我在想的,但我不知道要得到那个倾斜还是在微积分中使用它......
  • 为了做到这一点,您必须以 3D 形式表示空间,这在 iPhone 上并不容易。但是,您可以访问 iPhone 的倾斜信息 (stackoverflow.com/questions/7135934/ios-gyroscope-api),并且仅在 iPhone 足够平坦时才允许用户拍照(请考虑一些误差范围)。这可能会改善您的测量结果
  • 您的错误似乎很大归因于倾斜,尤其是在上面发布的示例图像中。我会检查你的方法。还尝试根据直径(仅两个点)计算像素大小以进行比较。最后,您应该计算硬币上的参考点偏离 1,2,3 像素时的误差,从而知道计算出的另一个对象大小的误差范围。
  • 找到硬币的最小和最大直径,这些是你的平面的基向量,你应该有更好的测量值......每个基向量使用不同的比例

标签: ios swift image-processing geometry measurement


【解决方案1】:
  1. 找硬币green边界框矩形)

    手动或通过某些搜索特定颜色、图案、霍夫变换、分割...这将限制搜索后续步骤的区域

  2. 找到边界(不同的red边缘颜色强度)

    所以创建一个作为硬币边界的点列表(注意阴影),只需扫描足够高强度的凸起。

  3. 计算圆心

    只是所有边界点的平均值...

  4. 测试所有边界点的min/max 到中心的距离

    如果倾斜很小,那么您将有许多具有最小和最大半径的点,因此请从中取中间点。如果|max-min| 非常小,那么您就没有倾斜。最小/最大距离点和中心之间的线为您提供black 基向量。

  5. 使用black基向量进行测量

    因此选择 2 个点(red 线 d)进行测量,并从它们平行于基向量投射green 射线。他们的交点将创建2 线a,b。这很容易:

    • d = sqrt((a*a)+(b*b))

    其中a,b 是行的大小,以单位为单位。你可以像这样获得它:

    • a_size_unit = a_size_pixel * coin_r_unit / rmax_pixel
    • b_size_unit = b_size_pixel * coin_r_unit / rmin_pixel

[注]

选择此图像是为了强调倾斜,但您应该使用与芯片表面几乎平行的平面图像以避免透视失真。这张图片不是一个很好的例子,立方体离相机比硬币更远......

要解决这个问题,请参阅selection criteria for different projections

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-08
  • 1970-01-01
  • 2015-09-27
  • 2013-07-22
  • 2021-10-03
  • 1970-01-01
相关资源
最近更新 更多