深度学习——图像余弦相似度

计算机视觉是研究图像的学问,在图像的最终评价时,往往需要用到一些图像相似度的度量指标,因此,在本文中我们将详细地介绍原生和调用第三方库的计算图像余弦相似度的方法。

使用原生numpy实现

python 复制代码
import numpy as np

def image_cosine_similarity(img1, img2):
    """
    使用纯NumPy计算两张图像的余弦相似度
    """
    # 展平图像并转换为浮点数
    vec1 = img1.flatten()
    vec2 = img2.flatten()
    
    # 计算点积
    dot_product = np.dot(vec1, vec2)
    
    # 计算L2范数
    norm1 = np.linalg.norm(vec1)
    norm2 = np.linalg.norm(vec2)
    
    # 计算余弦相似度
    return dot_product / (norm1 * norm2)

使用sklearn实现

python 复制代码
import numpy as np
from sklearn.metrics.pairwise import cosine_similarity

def image_cosine_similarity_sklearn(img1, img2):
    """
    使用 sklearn 计算两张图像的余弦相似度
    
    参数:
        img1, img2: 两张图像(2D 灰度或 3D 彩色 numpy 数组)
    
    返回:
        余弦相似度(范围 [-1, 1],但图像通常为 [0, 1])
    """
    # 展平图像并转换为 float
    vec1 = img1.flatten().reshape(1, -1).astype(float)
    vec2 = img2.flatten().reshape(1, -1).astype(float)
    
    # 计算余弦相似度
    similarity = cosine_similarity(vec1, vec2)
    return similarity[0][0]  # 返回标量值
相关推荐
大数据张老师15 分钟前
用 AI 做数据分析:从“数字”里挖“规律”
大数据·人工智能
音视频牛哥43 分钟前
如何打造毫秒级响应的RTSP播放器:架构拆解与实战优化指南
人工智能·机器人·音视频开发
张较瘦_1 小时前
[论文阅读] 人工智能 + 软件工程 | NoCode-bench:评估LLM无代码功能添加能力的新基准
论文阅读·人工智能·软件工程
go54631584651 小时前
Python点阵字生成与优化:从基础实现到高级渲染技术
开发语言·人工智能·python·深度学习·分类·数据挖掘
Coovally AI模型快速验证1 小时前
避开算力坑!无人机桥梁检测场景下YOLO模型选型指南
人工智能·深度学习·yolo·计算机视觉·目标跟踪·无人机
巫婆理发2221 小时前
神经网络(第二课第一周)
人工智能·深度学习·神经网络
欧阳小猜2 小时前
OpenCV-图像预处理➁【图像插值方法、边缘填充策略、图像矫正、掩膜应用、水印添加,图像的噪点消除】
人工智能·opencv·计算机视觉
旭日东升的xu.2 小时前
OpenCV(04)梯度处理,边缘检测,绘制轮廓,凸包特征检测,轮廓特征查找
人工智能·opencv·计算机视觉
liliangcsdn2 小时前
mac测试ollama llamaindex
数据仓库·人工智能·prompt·llama
qyhua2 小时前
Windows 平台源码部署 Dify教程(不依赖 Docker)
人工智能·windows·python