感知哈希算法的Java实现
发布时间
阅读量:
阅读量
通过Google的图像识别技术“相似图片搜索”功能,你可以用一张图片快速找到互联网上大量与之类似的其他图片。访问Google图像搜索界面。
点击照相按钮上传一张angelbaby原图:
点击搜索后, Google 将识别与之相匹配的图片, 并根据相似度高低排列这些结果. 其中相似度越高, 则排在更靠前的位置.
这种技术的工作原理是什么?计算机是如何判断两张图片相似的? Neal Krawetz 教授对此进行了阐述。关键的技术手段被称为 perceptual hash algorithm(感知哈希算法)。该算法的作用是计算生成每张图片的一个唯一标识符(fingerprint),并比较不同图片之间的该标识符差异性。其相近程度越大,则两张图片之间的相似程度越高。
以下是一个最简单的java实现:
预处理:读取图片
File inputFile = newFile(filename);
BufferedImage sourceImage = ImageIO.read(inputFile);//读取图片文件
首先进行尺寸缩减。对图像进行缩放处理后得到一个8×8像素的小图像。其主要目的是去除图像中的细节信息,并专注于保留基础结构和明暗变化特征。从而
全部评论 (0)
还没有任何评论哟~
