用opencv和moviepy实现视频边缘检测

该博客介绍了如何使用OpenCV提取视频帧并进行边缘检测,同时利用MoviePy提取音频并合成视频。在视频处理部分,通过Canny算法实现了边缘检测,并将处理后的帧写入新视频。音频部分,使用MoviePy读取、保存及播放音频。最后,尝试将处理后的音频和视频合成为MP4文件,但遇到了没有声音的问题。

用opencv实现视频音频提取和画面灰度

成果展示
python边缘检测视频

1.提取视频

1.1首先从网上下载一个视频

贝贝,然后输入你要解析的b站视频BV号,下载mp4格式

2.2 下载依赖
pip3 insntall moviepy==1.0.0#1.0.0的能用write_videofile()
pip3 install PyAudio
pip3 install winsound
pip3 install opencv-python
pip3 install librosa
2.3 提取视频代码
import cv2  as cv#导入opencv
import numpy as np
import librosa.display
import matplotlib.pyplot as plt
# 单张测试
#img=cv.imread("d:\\cry\\Videos\\Captures\\710027277-1-208.mp4")  #读取图片
#ca=cv.Canny(img,100,100)  #边缘检测
#ga=cv.GaussianBlur(img, (5, 5), 0) #高斯模糊
#cv.namedWindow('canny',0)
#cv.resizeWindow('canny', 700, 500)
#cv.imshow("canny",ca)
#cv.waitKey(0)
#cv.namedWindow('Blurred Image',0)
#cv.resizeWindow('Blurred Image', 700, 500)
#cv.imshow("Blurred Image",ga)
#cv.waitKey(0)

# 1.源视频处理
capture = cv.VideoCapture("d:\\cry\\Videos\\Captures\\710027277-1-208.mp4")  # 首先获取并打开源视频,这个自己弄好路径就好,不要有中文
# 获取开始帧和介绍帧,start和end 是我们想要从整个视频中想要截取的一小段视频的开始和结束
start = 0 
# 2.创建一个写入视频对象
# 下面三个cap.get我加了int()强制类型转换,因为返回的是float类型,在创建写入视频对象时不允许,也有可能有的opencv版本不需要,大家可以自行尝试判断,加一个不碍事
weight=int(capture.get(cv.CAP_PROP_FRAME_WIDTH)) #获取视频的长宽和fps
height=int(capture.get(cv.CAP_PROP_FRAME_HEIGHT))
fps=int(capture.get(cv.CAP_PROP_FPS))
# fourcc = cv.VideoWrit
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厨 神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值