区分圆形矩形和三角形的技术?

时间:2009-11-07 19:43:37

标签: image-recognition

哪些编码技术可以让我区分黑白图像位图中的圆形,矩形和三角形?

4 个答案:

答案 0 :(得分:2)

您可以训练Artificial Neural Network对形状进行分类:P

答案 1 :(得分:1)

如果噪声足够低以提取曲线,可以使用近似值:对于每个形状选择参数给出最小误差(他最小二乘方法可能有帮助)然后比较这些误差......

如果图像有噪声,我会考虑Hough变换 - 它可以用来检测具有少量参数的形状,如圆形(对于矩形和三角形更难)。

答案 2 :(得分:1)

只是一个想法:从像素逐行扫描(像素)图像。如果你遇到第一个白色像素(假设它有一个黑色背景),你将它的位置保持为起始点,并在下一个白色像素的每个方向上查看它周围的八个像素。如果找到相邻的第二个像素,则可以在这两个像素之间建立方向向量。

现在重复此操作,直到矢量方向发生变化(或变化高于某个阈值)。将更改前的最后一个点保留为第一行的端点,并重复下一行的过程。

然后计算两条线之间的角度并存储它。现在追踪第三行。计算第2行和第3行之间的角度。

如果两个角都是矩形,你可能找到了一个矩形,否则你可能找到了一个三角形。如果你找不到任何直线,你可以断定你找到了一个圆圈。

我知道这个算法有点粗略,但我认为(有一些改进)它可以起作用,如果你的图像质量不是太差(太多噪音,线条间隙等)。

答案 3 :(得分:1)

您正在寻找Hough Transform。对于实现,请尝试AForge.NET框架。它包括circle and line hough transformations