递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 859|回复: 2
打印 上一主题 下一主题

[其它] 图片相似度识别

[复制链接]

27

主题

63

帖子

421

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
421
跳转到指定楼层
楼主
发表于 2024-11-24 12:28:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
通过网盘分享的文件:图片相似度比较
链接: https://pan.baidu.com/s/1jcW1AQkYIRkGmuoLVCQUjw 提取码: akqw

有没有人会把他转为火山可以用的库

回复

使用道具 举报

70

主题

458

帖子

3235

积分

论坛元老

Rank: 8Rank: 8

积分
3235
沙发
发表于 2024-11-25 09:44:54 | 只看该作者
看了一下这个,ThePictureContrast。
很早以前,好像论坛中有一个相似的项目,是关于文本识别的,现在找不到了。
和这个原理类似。在易语言中也有类似的程序。

===================
最简单的图像识别
 这里的关键技术叫做"感知哈希算法"(Perceptual hash algorithm),它的作用是对每张图片生成一个"指纹"(fingerprint)字符串,然后比较不同图片的指纹。结果越接近,就说明图片越相似。

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

得到指纹以后,就可以对比不同的图片,看看64位中有多少位是不一样的。在理论上,这等同于计算"汉明距离"(Hamming distance)。如果不相同的数据位不超过5,就说明两张图片很相似;如果大于10,就说明这是两张不同的图片。
===================

最后附上一个实现。只有图片比较的方法。
迅雷下载.rar (4.3 KB, 下载次数: 5)
回复

使用道具 举报

15

主题

136

帖子

1024

积分

金牌会员

Rank: 6Rank: 6

积分
1024
板凳
发表于 3 天前 | 只看该作者
可以实现计算两个照片局部不同的变化面积吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2025-1-15 19:55 , Processed in 0.088015 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表