模糊图像识别的Python实现
我的目标是从一张图片中提取出里面的形状,并把这些形状以列表的形式输出。这里的形状不是指“三角形”或“正方形”,而是一些相邻的像素点,它们的颜色值是相似的。
我第一次尝试使用了一种递归算法,这种算法会在图片中“游走”,通过相同颜色的像素路径来找到形状,并把能到达的像素都加入到形状列表中。这个方法在处理小图片时效果不错,但在处理大图片时,很快就超过了最大递归深度,导致程序出错。
我现在的尝试是用迭代的方法,但似乎不太奏效。http://pastebin.com/seLbnGE4
有没有更好的方法,或者有没有现成的模块或方法可以满足我的需求呢?
1 个回答
3
你所寻找的内容听起来像是“图像分割”。简单来说,就是把一张图片分成不同的部分。通常这是一道比较复杂的数学题,但在OpenCV这个工具里已经有实现了。
你可以考虑使用“水平集”和“Chan-Vese算法”。这是一种处理图像分割的方法,相关的资料可以在网上找到。
对于将图像分割成多个区域的凸优化框架,目前还是一个很有趣的数学问题,大家都在研究。