二值化后我有黑白图像。之后,我得到一个不规则形状的物体。链接到这张图片如下。 我怎么能把这个物体刻成圆?或者我如何找到这个对象的“中心”?如何找到对象的中心?
回答
我认为,该对象的该中心可以很容易地发现为x的算术平均值和y坐标。我想用圆圈代替它,我会说直径是所有点到中心的平均距离的两倍。
好吧,您可以从顶部向下扫描最顶部的白色像素,然后从底部向上扫描最底部的白色像素,左右相同。给你一个矩形。找到矩形的中心很容易(例如左+(右 - 左)/ 2),这就是你的圆心。然后找到到角落的距离(任何可以做的),这就是你的圆圈半径。
这不会产生最小的半径,我认为。考虑该算法针对填充白色圆圈的结果。 –
同意,不......但用例可能并不需要; OP没有说... – mark
这听起来像是一组白色像素上的smallest circle problem。它可以在像素数量的线性时间中找到。这是最好的你会得到它你的输入只是一个二进制像素数组。
您可以使用一个简单的公式找到像素的重心,这个公式是x坐标除以点数和y坐标之和除以点数(I mean白点)。
然后,您可以绘制一个以重心为中心的圆,点之间的最大距离为半径的一半。
Here您对此有图解。
- 1. 如何找到对象的质心?
- 2. WPF - 如何找到另一个对象中包含的对象?
- 3. 如何从C#中的child(property)对象找到父对象?
- 4. 如何在EF图中找到对象
- 5. C++ opencv找到对象的中心并添加圆圈
- 6. 如何找到mandelbrot集合的中心
- 7. 如何找到网格的中心?
- 8. 如何找到多边形的中心?
- 9. 如何找到point3d数组的中心?
- 10. 如何找到图像的中心?
- 11. 如何将智能对象图层中心对齐到画布?
- 12. 如何找到COM对象的ActiveX ClassID?
- 13. 如何找到正确的Json对象
- 14. 如何找到对象关联的类?
- 15. 的Javascript如何找到对象循环
- 16. 如何找到2个IEnumerable的对象
- 17. 我如何找到numberOfRowsInSection的对象
- 18. OpenGL - 如何从中心缩放对象?
- 19. 如何将提取的对象保存到核心数据中
- 20. 如何滚动到对象的中心位置
- 21. 在对象数组中找到对象
- 22. 找到对象
- 23. 找到对象
- 24. 如何比较对象数组以找到丢失的对象
- 25. Nodejs:如何在JSON对象中找到特定的键值对
- 26. 如何用autorelease消息找到对象?
- 27. LD_LIBRARY_PATH:如何找到共享对象
- 28. 如何找到并从dataase PHP对象
- 29. 如何找到NSNotification对象类型?
- 30. 如何重组对象,并找到UnderscoreJS
你想找到对象绘制最长的线并绘制一个半径为半径的圆? –
链接为我断了 - 从来没有实际加载任何PNG – Pyrce
@tuğrulbüyükışık我会认为“nieve”方法仅仅是平均“白色”像素的位置? –