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

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

使用原生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]  # 返回标量值
相关推荐
在下_诸葛12 分钟前
DeepSeek的API调用 | 结合DeepSeek API文档 | Python环境 | 对话补全(二)
人工智能·python·gpt·prompt·aigc
云徒川26 分钟前
AI对传统IT行业的变革
大数据·人工智能
rocksun39 分钟前
如何从数据库生成“AI”:Bruce Momjian
人工智能
Christopher39 分钟前
前端er在Cursor使用MCP实现精选照片的快速上手教程
人工智能
EasyNVR1 小时前
NVR接入录像回放平台EasyCVR视频融合平台城市/乡镇污水处理厂解决方案
网络·人工智能·音视频
云卓SKYDROID1 小时前
无人机磁力传感器与信号传输解析!
人工智能·科技·无人机·科普·云卓科技
Json_1 小时前
Vue 初识Hello word
前端·vue.js·深度学习
果汁华1 小时前
AI产品的基础设施:算法、数据与大语言模型
大数据·人工智能·语言模型
Json_2 小时前
Vue 内置组件 -slot讲解
前端·vue.js·深度学习
芥子沫2 小时前
远程装个Jupyter-AI协作笔记本,Jupyter容器镜像版本怎么选?安装部署教程
ide·人工智能·jupyter