第五节课·基于图像相似度比较分镜头

目录

基本思路

5.1 将视频打散为图片

5.2比较图像相似度

5.2.1 基于相等比较图像相似度

5.2.2 基于numpy计算图片是否相等

5.2.3 基于哈希(以均值哈希算法为例)

5.3 视频截取:ffmpeg

5.4 综合运用

5.4.1练习一

 5.4.2练习二


基本思路

1.将视频打散为图片

2.选择合适的方法(相等、numpy、哈希)比较图像相似度

3.根据相似度,去除重复镜头

5.1 将视频打散为图片

其中,vc=cv2.VideoCapture()

参数为0时,即vc=cv2.VideoCapture(0),表示打开笔记本的内置摄像头;

参数为视频文件路径,即vc=cv2.VideoCapture(“../testi.mp4”),为打开视频文件。

代码如下:

import os
import cv2
import subprocess

os.chdir(r'D:\pythonclass')#转到目录下
v_path='ghz.mp4'
image_save='./img'#新建一个文件夹用于放生成的图片

cap=cv2.VideoCapture(v_path)
frame_count=cap.get(cv2.CAP_PROP_FRAME_COUNT)#返回帧数
print(frame_count)

for i in range(int(frame_count)):
    _,img=cap.read()
    img=cv2.cvtColor(img,cv2.cv2.COLOR_BGR2GRAY) #cv2.COLOR_RGBGRAY  cv2.COLOR_BGR2GRAY
    #大写的都是常量
    cv2.imwrite('./img/image{}.jpg'.format(i),img)#把i传进{}中

效果如图:

5.2比较图像相似度

5.2.1 基于相等比较图像相似度

涉及函数:operator(标准运算符替代函数)

其中,会用到operator.eq(a,b)。

eq(a, b) 与 a == b 相同。

Operator其他功能参考:operator --- 标准运算符替代函数 — Python 3.10.0 文档

代码如下:

import operator
from PIL import Image
a=Image.open('./img/image0.jpg')
b=Image.open('./img/image0.jpg')
print(a)
out=operator.eq(a,b)
print(out)

5.2.2 基于numpy计算图片是否相等

涉及函数:NumPy 算术函数;any()函数。

①umpy包含简单的加减乘除: add(),

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值