Python Opencv 简单视频裁剪功能的实现 |
您所在的位置:网站首页 › 简单欧式沙发裁剪图纸视频 › Python Opencv 简单视频裁剪功能的实现 |
本篇文章基于 https://blog.csdn.net/u014361280/article/details/106157012 对其中一些错误进行指正。 下面先放上原文内的代码 import cv2 as cv def main(): # 导入视频文件,参数:0 自带摄像头,1 USB摄像头,为文件名时读取视频文件 video_caputre = cv.VideoCapture(r"D:\CloudMusic\MV\排骨教主 - 入画.mp4") # 获取读入视频的参数 fps = video_caputre.get(cv.CAP_PROP_FPS) width = video_caputre.get(cv.CAP_PROP_FRAME_WIDTH) height = video_caputre.get(cv.CAP_PROP_FRAME_HEIGHT) print("fps:", fps) print("width:", width) print("height:", height) # 定义截取尺寸,后面定义的每帧的h和w要于此一致,否则视频无法播放 # 注意 这里是高宽 (height, width) size = (int(height), int(width / 2)) # 创建视频写入对象 videp_write = cv.VideoWriter("videoFrameTarget.avi", cv.VideoWriter_fourcc('M', 'J', 'P', 'G'), fps, size) # 读取视频帧,然后写入文件并在窗口显示 success, frame_src = video_caputre.read() while success and not cv.waitKey(1) == 27: #读完退出或者按下 esc 退出 # [width, height] 要与上面定义的size参数一致,注意参数的位置 frame_target = frame_src[0:int(width/2), 0:int(height)] # 写入视频文件 videp_write.write(frame_target) # 显示裁剪的视频和原视频 cv.imshow("video", frame_target) cv.imshow("Video_src", frame_src) # 不断读取 success, frame_src = video_caputre.read() print("视频裁剪完成") # 销毁窗口,释放资源 cv.destroyWindow("video") cv.destroyWindow("Video_src") video_caputre.release() if __name__=="__main__": main()其中写到 # 注意 这里是高宽 (height, width) size = (int(height), int(width / 2))在我实际的使用中发现是错误的,他的文章里有显示运行结果。 在经过我的不断尝试之后发现,size这一行的代码依然是“宽高”而不是“高宽”,真正要写成“高宽”的是以下这一行: target=frame[0:int(high),int(width/4):int(width/2+width/4)] #注意这里是高宽其中冒号前数字表示起始像素,后面数字表示结束像素,我当前的代码表示截取视频的正中心
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |