两张图片相似度匹配算法学习路线

大纲:​​​​​​目标跟踪基础:两张图片相似度算法-腾讯云开发者社区-腾讯云 (tencent.com)

目标跟踪基础:两张图片相似度算法 (qq.com)

一、传统方法

1.欧式距离(用于判断是否完全相同)

[三维重建] [机器学习] 图片相似度_评价两张图片相似度或差异度的指标是-优快云博客

import numpy as np

def euclidean_distance(image1, image2):
    # 将图片展平为一维向量
    vector1 = image1.flatten()
    vector2 = image2.flatten()

    # 计算欧式距离
    distance = np.linalg.norm(vector1 - vector2)
    return distance

# 示例用法
image1 = np.array([[1, 2, 3], [4, 5, 6]])
image2 = np.array([[4, 5, 6], [7, 8, 9]])
distance = euclidean_distance(image1, image2)
print(distance)

缺点:只考虑了像素差异,没有考虑位置和形状。

2.余弦相似度

from PIL import Image
 
from numpy import average, linalg, dot
 
 
 
 
 
def get_thumbnail(image, size=(1200, 750), greyscale=False):
 
    image = image.resize(size, Image.ANTIALIAS)
 
    if greyscale:
 
        image = image.convert('L')
 
    return image
 
 
 
 
 
def image_similarity_vectors_via_numpy(image1, image2):
 
 
 
    image1 = get_thumbnail(image1)
 
    image2 = get_thumbnail(image2)
 
    images = [image1, image2]
 
    vectors = []
 
    norms = []
 
    for image in images:
 
        vector = []
 
        for pixel_tuple in image.getdata():
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值