所以我的目标是获取图像输入并输出其中包含的形状列表作为输出。当然,形状不会像“三角形”或“正方形”,而只是类似值的连续像素列表。 我的第一次尝试使用了递归算法,该算法通过相似颜色的像素路径“漫游”图像,并将所有可以获得的算法添加到形状列表中。这适用于小图像,但很快就超过了最大值。较大图像的递归深度。
我目前的尝试是迭代的,但不想工作。 http://pastebin.com/seLbnGE4
有没有更好的方法可以做到,或者是否存在适合我需要的模块或方法?
答案 0 :(得分:3)
您正在寻找的内容听起来像“图像细分”(cf http://en.wikipedia.org/wiki/Segmentation_(image_processing))。通常是一个困难的数学问题,但在OpenCV中实现。
您可以考虑使用关卡集和“Chan-Vese Algorithim”(参考http://www.univ-pau.fr/~cgout/viscosite/old/20032004/veseChanIJCV2002.pdf ftp://ftp-sop.inria.fr/odyssee/Team/Rachid.Deriche/Lectures/MPRI/IEEEIP2001.pdf)
用于分割到2个以上区域的凸优化框架是一个非常有趣的开放数学问题。