A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

例如第一张图片是否在第二张中。

位置角度大小比例如何?在java中怎么判断?

能间接达到效果也可以,或者给个方向~




评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1

查看全部评分

3 个回复

正序浏览
lvjayj 发表于 2013-8-10 11:25
关键技术:"感知哈希算法"
它的作用是对每张图片生成一个"指纹"字符串
然后比较不同图片的指纹。结果越接 ...

你写的?太强大了吧
回复 使用道具 举报
神之梦 发表于 2013-8-9 23:44
这个用java搞起来应该不是那么容易吧

关键技术:"感知哈希算法"
它的作用是对每张图片生成一个"指纹"字符串
然后比较不同图片的指纹。结果越接近,就说明图片越相似。


第一步,缩小尺寸。将图片缩小到8x8的尺寸,总共64个像素。这一步的作用是去除图片的细节,只保留结构、明暗等基本信息,摒弃不同尺寸、比例带来的图片差异。
第二步,简化色彩。将缩小后的图片,转为64级灰度。也就是说,所有像素点总共只有64种颜色。
第三步,计算平均值。计算所有64个像素的灰度平均值。
第四步,比较像素的灰度。将每个像素的灰度,与平均值进行比较。大于或等于平均值,记为1;小于平均值,记为0。
第五步,计算哈希值。将上一步的比较结果,组合在一起,就构成了一个64位的整数,这就是这张图片的指纹。组合的次序并不重要,只要保证所有图片都采用同样次序就行了。

SimilarImage.zip

185.67 KB, 下载次数: 57

Java代码

回复 使用道具 举报
这个用java搞起来应该不是那么容易吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马