
对于这种图像搜索算法,通常分为三个步骤:
1. 目标图像的特征提取,描述图像的算法很多,使用的算法更多: SIFT描述符,指纹算法功能,捆绑特征算法,哈希函数(哈希函数)等. 也可以根据不同的算法进行设计到不同的图像,例如图像的部分N阶矩提取图像特征的方法.
2. 编码图像特征信息并将大量图像编码为查找表. 对于目标图像,可以对高分辨率的图像进行下采样以减少计算量,然后执行图像特征提取和编码.
3. 相似度匹配操作: 使用目标图像的编码值在图像搜索引擎的图像中计算全局或局部相似度;根据所需的鲁棒性设置阈值,然后设置相似度. 预先保存高分辨率图片;最后,应该有一个步骤可以过滤出最匹配的图片. 仍应使用此特征检测算法.

根据Neal Krawetz博士的解释,该原理非常简单且易于理解. 我们可以使用快速算法来获得基本结果.
此处的关键技术称为“感知哈希算法”. 它的功能是为每张图片生成一个“指纹”字符串,然后比较不同图片的指纹. 结果越接近图片搜索的原理,图片越相似.
以下是最简单的实现:
第一步是减小尺寸.

将图片缩小为8×8大小,总共64个像素. 此步骤的作用是删除图片的细节,仅保留结构,明暗等基本信息,并丢弃由于大小和比例不同而导致的图片差异.
第二步是简化颜色.
将缩小的图像转换为64级灰度. 换句话说,所有像素总共只有64种颜色.
第三步是计算平均值.

计算所有64个像素的灰度平均值.
第四步是比较像素的灰度等级.
将每个像素的灰度与平均值进行比较. 大于或等于平均值,记录为1;小于平均值,记录为0.
第五步是计算哈希值.

合并上一步的比较结果以形成64位整数. 这是这张照片的指纹. 组合的顺序并不重要,只要所有图片的顺序相同即可.
获取指纹后,您可以比较不同的图片以查看64位中有多少位不同. 从理论上讲,这等效于计算“汉明距离”. 如果不同的数据位不超过5,则表示两个图片非常相似;如果大于10,则表示它们是两张不同的图片.
有关特定的代码实现,请参阅Wote用python编写的imgHash.py. 代码非常短,只有53行. 使用时图片搜索的原理,第一个参数是参考图片,第二个参数是比较其他图片的目录. 返回的结果是两张图片之间不同数据位数(汉明距离).
此算法的优点是它简单,快速,并且不受图像大小的影响. 缺点是图像的内容无法更改. 如果您在图片中添加了一些单词,将不会被识别. 因此,它的最佳用途是根据缩略图查找原始图像.
在实际应用中,经常使用功能更强大的pHash算法和SIFT算法,它们可以识别图片的变形. 只要变形不超过25%,它们就可以匹配原始图像. 尽管这些算法较为复杂,但其原理与上述简单算法相同,后者是在比较之前将图像转换为哈希字符串.
快来关注深圳互联网微信公众号〜小编在等你开车...
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-238988-1.html
这歌词是作文来的么
王建煊代表了台湾一部分聪明人
我也会选择守护目前来之不易的生活
钱越来越多