当前位置: 首页 > news >正文

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

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

使用原生numpy实现

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实现

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]  # 返回标量值
http://www.dtcms.com/a/97933.html

相关文章:

  • 基于华为设备技术的端口类型详解
  • 嵌入式八股RTOS与Linux--中断篇
  • vue如何实现前端控制动态路由
  • 基于pycatia的CATIA零部件激活状态管理技术解析
  • Centos7,tar包方式部署rabbitmq-3.7.6
  • C++ 初阶总复习 (16~30)
  • 液压式精密矫平机——以稳定压力,成就工业级平整
  • CVPR-2025 | 南洋理工基于图表示的具身导航统一框架!UniGoal:通用零样本目标导航方法
  • WordPress essential-addons-for-elementor xss漏洞
  • 全排列 II:去重的技巧与实现
  • 深入理解:阻塞IO、非阻塞IO、水平触发与边缘触发
  • 使用FastExcel时的单个和批量插入的问题
  • constant(safe-area-inset-bottom)和env(safe-area-inset-bottom)在uniapp中的使用方法解析
  • 网络安全(一):常见的网络威胁及防范
  • 【动态规划篇】- 路径问题
  • Java算法模板
  • Linux Mem -- 通过reserved-memory缩减内存
  • Python基于EdgeTTS库文本转语音
  • 大数据学习(92)-spark详解
  • sqli-labs靶场 less 3
  • CF每日5题Day5(1400)
  • 使用firewall-cmd配置SIP端口转发,实现双网卡互通,内外网方式
  • npm i 出现的网络问题
  • Python Cookbook-4.13 获取字典的一个子集
  • 19.OpenCV图像二值化
  • 【Linux笔记】进程间通信——命名管道
  • 深度学习中的数据类型
  • 17-动规-最长增长子序列
  • leetcode90-子集II
  • 我的编程之旅:从零到无限可能