python_根据图片的整体颜色/主导颜色判断两张图片是否相似
python_根据图片的整体颜色/主导颜色判断两张图片是否相似
·
# 图片路径
image1_path = r'D:\desktop\xiaoxxiaole\sucai\G.png' # 替换为第一张图片的实际路径
image2_path = r'D:\desktop\xiaoxxiaole\split_result\5_9.png' # 替换为第二张图片的实际路径
from PIL import Image
import numpy as np
def get_dominant_color(image_path):
# 打开图片文件
with Image.open(image_path) as img:
# 将图片转换为RGB模式
img = img.convert('RGB')
# 将图片转换为numpy数组
np_img = np.array(img)
# 重塑数组以得到形状为 (像素数量, 颜色通道) 的二维数组
pixels = np_img.reshape(-1, 3)
# 计算每种颜色的频率
colors, counts = np.unique(pixels, axis=0, return_counts=True)
# 获取出现次数最多的颜色索引
dominant_color_index = np.argmax(counts)
# 返回主导颜色
return tuple(colors[dominant_color_index])
def are_colors_similar(color1, color2, threshold=5):
# 确保颜色值以有符号整数形式进行比较
color1 = np.array(color1, dtype=np.int16)
color2 = np.array(color2, dtype=np.int16)
return all(abs(c1 - c2) <= threshold for c1, c2 in zip(color1, color2))
def compare_dominant_colors(image1_path, image2_path):
dominant_color1 = get_dominant_color(image1_path)
dominant_color2 = get_dominant_color(image2_path)
print(f"主导颜色: {dominant_color1},{dominant_color2}")
if are_colors_similar(dominant_color1, dominant_color2):
print("similar.")
else:
print("not similar")
compare_dominant_colors(image1_path, image2_path)
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)