python中判断两个数相等_识别相似图片的工具

python中判断两个数相等_识别相似图片的工具在 Python 中 有多种方法可以用来判断两个图像的相似度 以下是一些常用的方法及其代码示例 方法一 使用 PIL 库计算差异值 pythonfrom PIL import Image 打开两张图片 image1 Image open image1 jpg image2 Image open image2 jpg 将图片转换为相同的模式 例如 RGB image1

在Python中,有多种方法可以用来判断两个图像的相似度。以下是一些常用的方法及其代码示例:

方法一:使用PIL库计算差异值

 from PIL import Image 打开两张图片 image1 = Image.open('image1.jpg') image2 = Image.open('image2.jpg') 将图片转换为相同的模式(例如RGB) image1 = image1.convert('RGB') image2 = image2.convert('RGB') 计算差异值 diff = ImageChops.difference(image1, image2) 计算差异值的总和 diff_sum = sum(diff.getdata()) 计算相似度(差异值总和越小,相似度越高) similarity = 1 - diff_sum / diff.size * diff.size print(f"Similarity: {similarity}") 

方法二:使用均值哈希算法

 import cv2 import numpy as np def aHash(img): img = cv2.resize(img, (8, 8), interpolation=cv2.INTER_CUBIC) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) avg = np.mean(gray) hash_str = '' for i in range(8): for j in range(8): if gray[i, j] > avg: hash_str += '1' else: hash_str += '0' return hash_str def dHash(img): img = cv2.resize(img, (9, 8), interpolation=cv2.INTER_CUBIC) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) hash_str = '' for i in range(8): for j in range(8): if gray[i, j] > np.mean(gray[i:i+8, j:j+8]): hash_str += '1' else: hash_str += '0' return hash_str 计算两个图像的哈希值并比较 hash1 = aHash(cv2.imread('image1.jpg')) hash2 = aHash(cv2.imread('image2.jpg')) print(f"aHash similarity: {1 - sum(h1 != h2 for h1, h2 in zip(hash1, hash2)) / len(hash1)}") 

方法三:使用互信息计算相似度

 from sklearn import metrics as mr import imageio import numpy as np 读取图片 img_cp1 = imageio.imread('WD1.png') img_cp2 = imageio.imread('WD2.png') 调整图片尺寸 img_cp2 = np.resize(img_cp2, (img_cp1.shape, img_cp1.shape, img_cp1.shape)) 将图片展平为一维数组 img_cp1 = np.reshape(img_cp1, -1) img_cp2 = np.reshape(img_cp2, -1) 计算互信息 mutual_info = mr.mutual_info_score(img_cp1, img_cp2) print(f"Mutual Information: {mutual_info}") 

方法四:使用结构相似性指数(SSIM)

编程小号
上一篇 2025-01-01 13:02
下一篇 2025-01-01 12:53

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/141808.html