python练习5 视频图像处理分析

这篇博客介绍了如何使用Python进行视频图像处理,包括利用均值Hash判断图片相似性,基于均值哈希进行视频分镜头处理,通过RGB通道直方图计算视频帧相似度,实现视频分镜。还详细讲解了如何使用FFMPEG截取视频片段,包括调整截取长度和改变视频分辨率的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.利用均值Hash判断两张图片是否相同

import cv2
import numpy as np
import matplotlib.pyplot as plt
import os
from PIL import Image

print(os.getcwd())
os.chdir(r"D:\python\Ads2021")

#均值哈希算法
def aHash(img):
    #缩放为8*8
    plt.imshow(img)
    plt.axis('off')
    plt.show()
    img=cv2.resize(img,(8,8))
    plt.imshow(img)
    plt.axis('off')
    plt.show()
    
    #转换为灰度图
    gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    #s为像素和,初值为0;hash_str为hash值,初值为"
    s=0
    hash_str=""
    #遍历累加求像素和
    for i in range(8):
        for j in range(8):
            s=s+gray[i,j]
    #求平均灰度
    avg=s/64
    #灰度大于平均值为1相反为0生成图片的hash值
    for i in range(8):
        for j in range(8):
            if gray[i,j]>avg:
                hash_str=hash_str+'1'
            else:
                hash_str=hash_str+'0'
    return hash_str

#Hash值对比
def cmpHash(hash1,hash2):
    n=0
    print(hash1)
    print(hash2)
    #hash长度不同则返回-1代表传参出错
    if len(hash1)!=len(hash2):
        return-1
    #遍历判断
    for i in range(len(hash1)):
        #不相等则n计数+1,n最终为相似度
        if hash1[i]!=hash2[i]:
            n=n+1
    return n

img1 = cv2.imread('./pic/image0.jpg')
img2 = cv2.imread('./pic/image1.jpg')


hash1 = aHash(img1)
hash2 = aHash(img2)
n = cmpHash(hash1, hash2)
print('均值哈希算法相似度:', n)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值