To look up a possible match in a database, store the pixel colors as inpidual columns in the database, index a bunch of them (but not all, unless you use a very small image), and do a query that uses a range for each pixel value, ie. every image where the pixel in the small image is between -5 and +5 of the image you want to look up.
感知哈希算法 - Perceptual hash algorithm
简单步骤:
参考链接:相似图片搜索的原理 - 阮一峰 | 颜色分布法 和 内容特征法
相似度这个东西很模糊啊。。。如果只是想实现一个简单的版本,我在stackoverflow找到一个很有意思的算法:
然后再求两个图片每个点相似度的均值(相似度可以用差值、差值平方、或者根据位置再乘上权重什么的,弄些数据跑一下选择效果最好的)。
有意思的是,这个算法甚至还可以支持预先计算好一批图片,然后从数据库中查询相似的: