我在一个文件夹中有一组图像,其中每个图像在白色背景上具有方形或三角形(如this和this)。我想将这些图像分成不同的文件夹(请注意,我不关心检测图像是否为正方形/三角形等。我只想将这两个图像分开)。
我计划将来使用更复杂的形状(例如五边形或其他非几何形状),所以我正在寻找一种无监督的方法。但主要任务始终是将一组图像聚类到不同的文件夹中。
最简单/最好的方法是什么?我查看了图像聚类算法,但是他们对图像中的颜色/形状进行聚类。在我的情况下,我只想根据具有的形状分离这些图像文件。
感谢任何指针/帮助。
答案 0 :(得分:1)
您可以按照以下方法操作:
1. Create a look-up tables with shape you are using in the images
2. Do template matching on the images stored in a single folder
3. According to the result of template matching just store them in different folders
4. You can create folders beforehand and just replace the strings in program according to the usage.
我希望这会有所帮助
答案 1 :(得分:0)
这实际上取决于您的数据集的外观(例如,您的形状图像的样子),以及您希望解决方案的强大程度。棘手的部分是从每个形状图像中提取特征,产生您满意的聚类结果。一些想法:
您可以为每张图片计算 SIFT功能,然后根据这些功能对图片进行聚类:http://en.wikipedia.org/wiki/Scale-invariant_feature_transform
如果您不想使用SIFT路线,可以尝试 HOG :http://en.wikipedia.org/wiki/Histogram_of_oriented_gradients
一种更天真的方法 - 如果形状总是相同的比例,并且背景颜色是固定的,则可以基于形状区域去除背景聚类(例如,数量)由形状占据的像素。)