复现手机文件管理系统中删除重复图像功能点

简介: 复现手机文件管理系统中删除重复图像功能点

思路构建


  分析上述功能需求可以用以下两种思路进行构建删除重复图像功能:


  1. 使用聚类,对所有图像进行聚类,根据聚类结果进行剔重(类别数不易算,整体耗时长);


  1. 使用基准图像进行对全部图像进行查找相似性。

  在这里简单实现一下根据原图像进行查找相似的图像(这个里面的相似还有一层含义就是相同,道理同   相似三角形也是全等三角形)



示意图:

image.png

项目搭建


  在这里我例举4类常见的比较相似图像的方法:


  • 计算图像的欧几里得距离进行判断;


  • 使用结构相似性度量(SSIM)进行判断;


  • 计算两张图像的哈希值进行计算判断


  • 图像的余弦相似性


欧几里得距离


import numpy as np
from scipy.spatial import distance
from PIL import Image
image1 = Image.open("1.jpg")
image2 = Image.open("2.jpg")
value_image1 = np.array(image1).flatten()
value_image2 = np.array(image2).flatten()
value_euclidean = distance.euclidean(value_image1, value_image2)
image1_value = np.array(image1)
image2_value = np.array(image2)
value_linalg = np.linalg.norm(image1_value - image2_value)
复制代码


SSIM


  在2004年的一篇论文中指出使用SSIM计算给定的两图像之间的相似性是界定在 0-1之间的值


from SSIM_PIL import compare_ssim
from PIL import Image
image1 = Image.open("1.jpg")
image2 = Image.open("2.jpg")
value = compare_ssim(image1, image2, GPU=False) 
复制代码


计算哈希值


  哈希是大家的老朋友了,网上关于哈希值的计算也很多,在github上关于图像哈希值的计算例子和讲解也很多,大家可以参考网上其他大神关于图像哈希值的计算讲解,在这里我就只举例子平均哈希的计算。 比较两幅图像的步骤如下:


  1. 构造每个图像的哈希


  1. 计算汉明距离。零距离表示相同的图像。


import imagehash
from PIL import Image
image1 = Image.open("1.jpg")
image2 = Image.open("2.jpg")
hash1 = imagehash.average_hash(image1)
hash2 = imagehash.average_hash(image2)
value = hash1-hash2
复制代码


计算图像的余弦相似性


from torch import nn
from PIL import Image
from torchvision import transforms
image1 = Image.open("1.jpg")
image2 = Image.open("2.jpg")
image1_tensor = transforms.ToTensor()(image1).reshape(1, -1).squeeze() 
image2_tensor = transforms.ToTensor()(image2).reshape(1, -1).squeeze()
cos = nn.CosineSimilarity(dim=0) 
value = float(cos(image1_tensor, image2_tensor))



相关文章
|
23天前
|
JavaScript Java 测试技术
Java项目基于ssm+vue.js的网上手机销售系统附带文章和源代码设计说明文档ppt
Java项目基于ssm+vue.js的网上手机销售系统附带文章和源代码设计说明文档ppt
25 0
|
9天前
|
PHP
驾校在线考试系统源码 手机+PC+平板自适应
Thinkphp在线考题源码 驾校在线考试系统 手机+PC+平板 自适应,机动车驾驶培训学校驾校类网站源码带手机端 运行环境:php+mysql
20 11
驾校在线考试系统源码 手机+PC+平板自适应
|
10天前
|
数据安全/隐私保护 SEO
蚂蚁分类信息系统二开仿么么街货源客模板微商货源网源码(带手机版)
网站采用蚂蚁分类信息系统二次开发,模板仿么么街货源客模板,微商货源网定制版。 模板设计风格简洁,分类信息采用列表形式发布,这种设计方式非常符合度娘 SEO 规则。收录效果是杠杠的。 这个网站风格目前是用来做货源推广使用的,但不仅限于货源网站。后台无加密,分类目录随意修改。 无论你是想做地方分类信息,二手市场,或者垂直行业信息分类平台都是不错的选择。
12 2
蚂蚁分类信息系统二开仿么么街货源客模板微商货源网源码(带手机版)
|
9天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的多功能智能手机阅读APP的详细设计和实现
基于SpringBoot+Vue+uniapp的多功能智能手机阅读APP的详细设计和实现
36 12
|
24天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的网上手机销售系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的网上手机销售系统的详细设计和实现(源码+lw+部署文档+讲解等)
|
24天前
|
缓存 Android开发 开发者
安卓系统优化:提升手机性能的秘诀
【5月更文挑战第31天】本文将探讨如何通过一系列简单的步骤和技巧,对安卓系统进行优化,以提升手机的性能。我们将从清理无用文件、管理后台应用、调整系统设置等方面入手,帮助你的安卓设备运行更加流畅。
|
4天前
|
Java 关系型数据库 MySQL
基于Java的二手手机回收平台系统
基于Java的二手手机回收平台系统
|
10天前
|
PHP
PHP地方门户分类信息网站源码讯客分类信息系统源码(含手机版)
1.上传程序到网站根目录,访问http://域名/install/index.php 进行安装,不要直接打开网址,先直接安装; 2.安装完成后 后台恢复数据即可 默认帐号密码都是admin http://域名/admin/ 3.不要删除任何文件,因为删除文件或者修改代码可能造成错误
10 0
|
17天前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的多功能智能手机阅读APP附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的多功能智能手机阅读APP附带文章和源代码部署视频讲解等
13 0
|
19天前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的品牌手机销售信息系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的品牌手机销售信息系统附带文章和源代码部署视频讲解等
14 0

热门文章

最新文章