python—视频分镜//FFMPEG

这篇博客介绍了使用Python进行视频分镜的方法,包括将视频帧保存为图片,运用四种图像相似度算法(均值哈希、差值哈希、感知哈希、三直方图)剔除重复镜头。同时,还讲解了如何使用FFMPEG进行视频截取,以及遇到的问题和解决路径问题的方式。作业部分包括对较长视频的分镜、相似度对比及输出结果的调整。
摘要由CSDN通过智能技术生成

一、视频分镜

1、将视频以帧的形式保存为照片

2、比较图像的相似度

一共有四种方法:均值哈希算法、差值哈希算法、感知哈希算法、三直方图算法

import cv2
import numpy as np
import matplotlib.pyplot as plt
import os
os.chdir('/Users/cici/downloads/2021')


# 均值哈希算法
def aHash(img):
    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 = ''
    for i in range(8):
        for j in range(8):
            s = s + gray[i, j]
    # 求平均灰度
    avg = s / 64
    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

def dHash(img):
    # 缩放8*8
    img = cv2.resize(img, (9, 8))
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    hash_str = ''
    # 每行前一个像素大于后一个像素为1,相反为0,生成哈希
    for i in range(8):
        for j in range(8):
            if gray[i, j] > gray[i, j + 1]:
                hash_str = 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值