什么编码技术可以让我区分黑白图像位图中的圆形,矩形和三角形?用于区分圆形矩形和三角形的技术?
回答
如果噪音足够低,提取曲线,近似可以用于:对每个形状选择参数给出最小误差(最小二乘法,他可以帮助在这里),然后比较这些错误......
如果图像是嘈杂的,我会考虑霍夫变换 - 它可以用来检测具有少量参数的形状,如圆形(对于矩形和三角形更难)。
图像嘈杂,我有一个训练集为每个形状 – Gamal
只是我头顶的想法:逐像素逐行扫描(像素)图像。如果遇到第一个白色像素(假设它具有黑色背景),则将其位置作为起始点,然后查看下一个白色像素周围八个像素的每个方向。如果找到相邻的第二个像素,则可以在这两个像素之间建立方向矢量。
现在重复此操作,直到您的矢量方向发生变化(或变化高于某个阈值)。保持更改前的最后一个点作为第一行的终点,并为下一行重复该过程。
然后计算两条线之间的角度并存储它。现在跟踪第三行。计算第二行和第三行之间的角度。
如果两个角都是矩形的,你可能找到了一个矩形,否则你可能找到了一个三角形。如果找不到任何直线,则可以断定您找到了一个圆圈。
我知道该算法有点粗略,但我认为(有一些改进),它可以工作,如果你的图像的质量不是太差(太多的噪音,行中的差距等)。
您正在寻找Hough Transform。对于实现,请尝试AForge.NET框架。它包括circle and line hough transformations。
你可以训练一个Artificial Neural Network以形状分类:P
- 1. 使用扫描仪查找圆形,三角形和矩形的区域
- 2. 三角形分区
- 3. 如何用OpenCV绘制圆角矩形(带圆角的矩形)?
- 4. 如何制作表单圆角矩形或圆形或三角形
- 5. 将圆角矩形变换为圆形
- 6. 从图像中检测三角形,椭圆和矩形
- 7. 使用两种颜色在Spritekit中绘制矩形/圆形和三角形。 。 。
- 8. 用三角形风扇绘制圆形
- 9. UIBezierPath圆角矩形 - 角
- 10. shaperenderer圆角三角形
- 11. JavaFX用于圆形动画的矩形
- 12. LibGDX中矩形/圆的三角形碰撞
- 13. 带圆角矩形的SKScene
- 14. 圆角矩形在pygtk的
- 15. Silverlight中的圆角矩形
- 16. UIBezierPath - 带圆角的矩形
- 17. 矩形网格内的三角形
- 18. 带切割三角形的矩形
- 19. 圆形到圆形三角形(菜单按钮切换)
- 20. 在KD树中存储矩形/圆/三角形
- 21. 笔画应用于核心图形中的圆角矩形
- 22. 设计形状类与圆形和三角形
- 23. 带圆角的三角形,用CSS
- 24. 完美圆角矩形
- 25. 圆角矩形问题
- 26. 圆角矩形虚线
- 27. 点是内圆角矩形?
- 28. UIBezzierPath为圆角矩形
- 29. 填补了部分圆角矩形GDI +
- 30. pygame的角度球(矩形)和矩形
能否请您提供更多的信息?将给定的位图保证包含一个圆或三角形?它可以包含其他形状?它可以包含多个圈子吗?形状可以出现在位图的任何位置,还是可以保证延伸到定界符?任何进一步的信息将是非常有用的。 – csj
位图必须只有一个形状 – Gamal
查看您在本主题中的评论,这听起来像是您希望在编码级别获得更多帮助。如果这是真的,那么最好让你的问题更抽象,更具体:你用什么语言编程?你有什么代码?你到底在哪一步失败? – BalusC