HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 估算拍摄物品尺寸的最佳方法是什么?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的应用程序应该使用欧元硬币作为参来估计对象的长度(以毫米为单位).这是一个截图示例:

ios – 估算拍摄物品尺寸的最佳方法是什么?

为了获得拍摄硬币的直径,我首先计算通过该形式的3个点的圆的方程

x ^ 2 y ^ 2 ax由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毫米.
我想我应该虑其他因素来应用校正因子或使微积分复杂化,但是哪个?你能给我一些提示吗?任何帮助对我都有用.

解决方法

>找到硬币(绿色边框矩形)

手动或通过搜索特定的颜色,图案,霍夫变换,分割……这将限制搜索后续步骤的区域
>找到边界(颜色强度明显的红边)

因此,创建一个作为硬币边界的点列表(小心阴影),只扫描足够高的强度凸起.
>计算圆心

只是所有边境点的平均值……
>测试所有边界点的最小/最大距离到中心

如果倾斜很小,那么你将有许多具有最小和最大半径的点,所以从它们中间取出.如果| max-min |非常小,然后你没有倾斜.最小/最大距离点和中心之间的线为您提供黑色基础向量.
>使用黑色基矢量进行测量

因此,选择2个点(红色线d)来测量并从它们平行于基础矢量投射绿色光线.他们的交叉点将创建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

ios – 估算拍摄物品尺寸的最佳方法是什么?

[注意]

选择此图像是为了强调歪斜,但是您应该使用几乎平行于芯片表面的平面图像以避免透视变形.这个图像不是一个很好的例子,立方体更远离相机然后硬币……

虑到这一点,请参阅selection criteria for different projections

大佬总结

以上是大佬教程为你收集整理的ios – 估算拍摄物品尺寸的最佳方法是什么?全部内容,希望文章能够帮你解决ios – 估算拍摄物品尺寸的最佳方法是什么?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。