【发布时间】:2010-10-10 06:50:25
【问题描述】:
我的文件夹中有很多图像,我想找到与预先选择的图像颜色相似的图像。
我希望能够做类似的事情:
python find_similar.py sample.jpg
并让它返回如下内容:
234324.jpg
55.jpg
9945.jpg
345434.jpg
104.jpg
这可行吗?
【问题讨论】:
标签: python image-processing python-imaging-library
我的文件夹中有很多图像,我想找到与预先选择的图像颜色相似的图像。
我希望能够做类似的事情:
python find_similar.py sample.jpg
并让它返回如下内容:
234324.jpg
55.jpg
9945.jpg
345434.jpg
104.jpg
这可行吗?
【问题讨论】:
标签: python image-processing python-imaging-library
我不能给你一个固定的解决方案,但这里有一个解决问题的角度。它不是特定于 PIL 的,而且可能完全是伪造的,因为我没有图像处理方面的经验。
对图像执行color quantization。这为您提供了一个调色板,可以对图像中的颜色信息进行编码,而无需任何形状信息。
运行principal components analysis 以获取颜色立方体中的主要成分。严格来说,你可以不先量化就运行它,但它可能太贵了。
对不同图像的主成分进行最小二乘拟合。
希望这会有所帮助。
【讨论】:
在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 讨论了这个问题。
【讨论】: