我在文件夹中有很多图像,我想找到与预选图像颜色相近的图像。
我希望能够做到这样的事情:
python find_similar.py sample.jpg
并返回类似的内容:
234324.jpg
55.jpg
9945.jpg
345434.jpg
104.jpg
这可行吗?
答案 0 :(得分:4)
我不能给你一个罐装解决方案,但这是一个解决问题的角度。它不是PIL特有的,它可能完全是假的,因为我没有图像处理经验。
在图片上执行color quantization。这为您提供了一个调色板,可以在没有任何形状信息的情况下对图像中的颜色信息进行编码。
运行principal components analysis以获取颜色立方体中的主要组件。严格来说,你可以在没有量化的情况下先运行它,但它可能太贵了。
对不同图像的主要成分进行最小二乘拟合。
希望这有帮助。
答案 1 :(得分:1)
在Question on Stackoverflow中讨论了用于查找相似图像的算法,您可能希望在Python& PIL。
此外,您可以直接使用PIL中的ImageChops
模块,并使用difference
方法比较两个图像:
import Image
import ImageChops
im1 = Image.open("original.jpg")
im2 = Image.open("sample.jpg")
diff = ImageChops.difference(im2, im1)
这可能有助于您了解原始图像与其他图像之间的差异。
还有另一个similar question on Stackoverflow讨论了这个问题。