Python视频处理(1)——视频分镜头提取+视频处理

OpenCV-Python实战(2)——图像与视频文件的处理_pythonopencv处理视频 Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。工具都帮大家整理好了,安装就可直接上手!当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。 阅读详情

目录

一、导出帧图像 

二、判定相似度

1.均值哈希判定相似度

2.基于直方图相似度

三、视频处理(利用ffmpeg)

1、截取视频1分钟

2、视频格式转换

3、多媒体格式转换

4、视频方向处理

5、其他命令代码整理


一、导出帧图像 

将视频以帧图像的方式呈现,逐帧导出图片

import os
os.chdir("C:/Users/Administrator/AppData/Local/Programs/Python/Python37/Lib/site-packages")
import cv2
import subprocess

v_path="D:/Python/ghz.mp4"
image_save="./pic"

cap=cv2.VideoCapture(v_path)
frame_count=cap.get(cv2.CAP_PROP_FRAME_COUNT)

for i in range(int(frame_count)):
    _,img=cap.read()
    img=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    cv2.imwrite("D:\Python\image{}.jpg".format(i),img)

运行结果示例:

二、判定相似度

对分帧结果判定相似度,并提取出相似度较大镜头作为分镜头。

1.均值哈希判定相似度

import cv2
import numpy as np
import matplotlib.pyplot as plt
 
# 均值哈希算法
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
 
for i in range(549):
    img1=cv2.imread('./pic2/image{}.jpg'.format(i)) 
    img2=cv2.imread('./pic2/image{}.jpg'.format(i+1)) 
    hash1 = aHash(img1)
    hash2 = aHash(img2)
    n = cmpHash(hash1, hash2)
    if(n>22):
        print('均值哈希算法相似度:', n/64)
        cv2.imwrite('./shot/image{}.jpg'.format(i+1),img2)

运行结果:

 (错误识别了3张)

2.基于直方图相似度

import cv2
import numpy as np
import matplotlib.pyplot as plt
 
# 通过得到RGB每个通道的直方图来计算相似度
def classify_hist_with_split(image1, image2, size=(256, 256)):
    # 将图像resize后,分离为RGB三个通道,再计算每个通道的相似值
    image1 = cv2.resize(image1, size)
    image2 = cv2.resize(image2, size)
    plt.imshow(image1)
    plt.show()
    plt.axis('off')
    
    plt.imshow(image2)
    plt.show()
    plt.axis('off')
    
    sub_image1 = cv2.split(image1)    #cv2.split()拆分通道
    sub
第五节课·基于图像相似度比较分镜头 目录 基本思路: 5.1 将视频打散为图片 5.2比较图像相似度 5.2.1 基于相等比较图像相似度 5.2.2 基于numpy计算图片是否相等 5.2.3 基于哈希(以均值哈希算法为例) 5.3 视频截取:ffmpeg 5.4 综合运用 基本思路: 1.将视频打散为图片 2.选择合适的方法(相等、numpy、哈希)比较图像相似度 3.根据相似度,去除重复镜头 5.1 将视频打散为图片 其中,vc=cv2.VideoCapture() 参数为0时,即vc=cv2.Vid 阅读详情

相关推荐

Python视频处理(2)——Flask网页开发+分镜

一、主程序基本结构 1、安装并导入Flask 安装:pip3 install flask 导入: from flask import Flask (以下2—5部分文案引自Python学习 | 2021-10-22 Flask Web开发_宣纸儿的博客-优快云博客,博主概括得非常凝练) 2、创建Flask对象(很重要的一步,不能忘记) flask程序需要创建一个Flask类对象,用于应用的配置和运行 name是Python中的特殊变量,如果文件作为主程序执行,那么__name__变量的.

maplelistener的博客 2609

第四周:基于图像相似度比较的分镜头

1.把视频打散为图片 首先在操作路径下载视频,然后将视频分帧数导出为图片 #把视频打散为图片 import os import cv2 import subprocess os.chdir('/Users/air/Desktop/mediabigdata') v_path='/Users/air/Desktop/ghz.mp4' image_save='/Users/air/Desktop/pic' cap=cv2.VideoCapture(v_path) frame_count=cap.get(

mitouhao的博客 396

AI短视频创作入门:从环境搭建到完整工作流

随着生成式AI技术的普及,AI视频生成正在重塑内容生产方式。扩散模型、多帧一致性技术以及语音合成算法的成熟,让普通人也能借助工具生成高质量的视频素材。但AI真正降低的是制作门槛,而非创作门槛——理解提示词工程、视频生成原理和流程管理,才是产出优质内容的关键。从剧情解说、知识科普到数字人口播,AI视频已广泛应用于短视频创作、产品宣传与教育培训等场景。本文从零搭建一套本地工作台,涵盖Python、FFmpeg等基础环境配置,并介绍选题管理脚本与提示词模板的工程化方法,为系统学习AI短视频制作提供清晰路线图。

weixin_34110749的博客 370

基于Python与LLM的短视频爆款分析与自动化脚本生成工作流

在内容创作与运营领域,数据驱动决策已成为提升效率的关键。其核心原理在于通过技术手段获取、处理和分析海量内容数据,从而提炼出可复用的成功模式。这一过程的技术价值在于将传统依赖人工经验的感性判断,转化为基于数据和算法的系统性方法。在短视频带货等应用场景中,这尤其体现在对爆款视频的内容结构、话术风格和互动规律的深度挖掘上。通过结合网络爬虫进行数据采集,并利用大语言模型(LLM)强大的自然语言理解与分析能力,可以自动化地完成从竞品分析到脚本生成的完整链路。本文聚焦于如何构建一个集数据采集、内容分析和视频生成为一体的

weixin_33831196的博客 435

python视频基础处理

本文主要介绍读取视频文件,保存视频帧图片;将帧图片合成为视频;读取视频文件,对视频帧图片进行心处理,将处理完的帧图片合成视频,以完成对视频的处理。

weixin_40356612的博客 2227

基于Python的视频和音频的数据通过傅里叶变换声音数据处理.zip

本次实验要求我们根据给出的视频和音频的数据,完成音频分类和视频音频匹配的任务。音频数据为四个壁上的麦克风采集到的声音,我们首先对声音数据进行短时傅里叶变换,将得到的四个特征图作为四个 channel,直接使用 CNN 进行图像分类。而对于匹配问题,我们的想法是根据音频提取出运动相关的一些信息,再与从视频中提取出的相同信息做相似,根据相似度使用 KM 算法进行匹配,具体选取的特征信息为运动方向和碰撞位置。 详细介绍参考:https://blog.youkuaiyun.com/sheziqiong/article/details/132844901

ubuntu20.04配置UR机械臂的仿真环境

gazebo和rviz中的机械臂的位姿是一样的,要实现同步控制,可以拖动rviz中的球移动到指定位置,点击plan观察路径规划,点击execute执行该路径规划,可以在gazebo和rviz中同步看到刚刚的路径规划运动,实现了简单的机械臂仿真环境搭建。这是因为catkin找的python版本为anaconda下面的版本,所以需要改为指定采用下面的命令,参考之前的。之后要source一下,才能读取到工作空间里的文件,以后每次打开终端进入工作空间都要执行该命令。时,一直不成功,解决办法可以看我之前写的。

weixin_48319333的博客 3494

微波无源器件 功分器1 新型方波导双模无功功分器

本名证明了一种基于有着特定功能的(dedicated)T性匹配元件(散射件)的进化结点的新型波导双模两路功分器的可行性。这个散射件,有着面向三个部分的匹配部分,提供了等效功分并且朝着对应的输出端口传输矩形波导的两个TE10/TE01正交模式。所提出的设计紧凑,易于比例变化并且能够级联来获得。

qq_45245770的博客 1393

间充质干细胞衰老机制与抗衰老干预策略研究

干细胞技术在再生医学领域具有广阔应用前景,其中间充质干细胞(MSCs)因其多向分化潜能和免疫调节特性备受关注。细胞衰老是影响干细胞治疗效果的共性难题,表现为增殖能力下降、端粒缩短等特征。通过表观遗传学分析发现,衰老MSCs存在DNA甲基化异常和组蛋白修饰改变;线粒体功能障碍导致ATP产量锐减,ROS累积显著增加。针对这些机制,研究者开发了包括小分子化合物筛选、CRISPR基因编辑和三维培养优化在内的多种干预策略。这些技术在组织修复、抗衰老治疗等应用场景中展现出重要价值,例如可提升心肌梗死修复效率2.3倍,缩

weixin_33502772的博客 229

Python经典编程习题100例:第32例:相反顺序输出列表

不要自卑,去提升实力 互联网行业谁技术牛谁是爹 如果文章可以带给你能量,那是最好的事!请相信自己 加油o~ 本人初学Python,只为熟悉语法编写,大神请勿理会 点击下面链接 Python经典编程100例习题汇总 题目描述: 按相反的顺序输出列表的值。 解题思路: > 利用reverse函数逆序 代码: arr=['f','g','e','b'] print(arr) arr.reverse() print(arr) ...

优快云 精品推荐 1417

6、探索音乐结构中的统一性:贝多芬《英雄交响曲》第一乐章的深度剖析

本文深入剖析了贝多芬《英雄交响曲》第一乐章的音乐结构,探讨其统一性的来源及表现形式。通过主题与动机、和声与调性、旋律与节奏、织体与动态等多方面的分析,揭示了这部作品在技术层面和情感表达上的卓越成就。

b9c0d的博客 518

Python爬虫教程:抓取区块链交易信息及加密货币市场数据

随着区块链技术和加密货币的迅猛发展,区块链交易和加密货币市场的数据逐渐成为金融、技术、经济研究等领域的热点。对于开发者和研究者而言,实时获取区块链交易数据和加密货币市场行情,对于投资分析、市场预测、技术研究等具有重要的参考价值。本文将通过Python爬虫技术,介绍如何抓取区块链交易信息及加密货币市场数据,详细阐述数据获取的原理、技术方案、实现方法以及抓取到的数据的存储与分析。我们将依托最新的爬虫技术,如requestsSeleniumScrapy,以及相关的数据处理库(如pandasmatplotlib。

2201_76125261的博客 2777

【STK】手把手教你利用STK进行光电红外仿真03-STK/EOIR模块属性之二 导弹等目标的EOIR设置

上一节介绍了如何设置传感器的通用属性和空间、光学、光谱、辐射四种专项属性。这一节介绍如果对导弹等目标的EOIR属性进行修改。

weixin_44184852的博客 2204

RT-DETR算法优化改进:DCNv4更快收敛、更高速度、更高性能,效果秒杀DCNv3、DCNv2等 ,助力检测

DCNv4更快收敛、更高速度、更高性能,完美和RT-DETR结合,助力涨点

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1323

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

上一篇: open3d处理3d图像
下一篇: Python视频处理(2)——Flask网页开发+分镜
maplelistener
博客等级 码龄5年 9粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值