opencv读取视频并保存图像的方法
作者:zhouxuechao 时间:2023-02-21 17:30:16
问题重述
实习项目要做安全帽目标检测,拿到了公司给的一些视频数据,使用Opencv读取视频并每隔 1 s 1s 1s存储一副图像,下面是一些视频数据
实现步骤 添加依赖库
import cv2
import os
定义视频路径和图像存储路径
video_path = './未戴安全帽视频01/'
image_path = './images/'
读取视频文件
video_files = [i for i in os.listdir(video_path) if i.split('.')[-1] in ['mp4']]
len(video_files)
获取视频帧
#video_file:'./未戴安全帽视频01/中建四局-东围墙5_001_2021-03-22-18-04-28_2021-03-22-18-04-33.mp4',
# pic_dir:'中建四局-东围墙5_001_2021-03-22-18-04-28_2021-03-22-18-04-33'
def get_image(video_file, pic_dir):
if not os.path.exists(pic_dir):
os.makedirs(pic_dir)
# cv2读取视频文件
vc = cv2.VideoCapture(video_file)
index = 0
# 判断载入的视频是否可以打开
rval = vc.isOpened()
while rval: # 循环读取视频帧
index = index + 1
rval, frame = vc.read()
# 每十帧保存一张图片
if index * 10 % 1 == 0:
if rval:
# cv2.imshow("capture", frame)
save_file = pic_dir + str(index).zfill(5) + '.png'
cv2.imwrite(save_file, frame) # 存储为图像,保存名为文件夹名
cv2.waitKey(1)
else:
break
vc.release()
print("已保存%d" %(index - 1) + "张图片")
# video_file = './未戴安全帽视频01/01.mp4'
# pic_path = '01/'
# get_image(video_file, image_path + pic_path)
遍历视频文件
for file in video_files:
video_file = video_path + file
pic_path = image_path + file.replace('.mp4', '/')
get_image(video_file, pic_path)
已保存1张图片
已保存1张图片
已保存1张图片
已保存1张图片
已保存1张图片
已保存1张图片
已保存1张图片
已保存1张图片
已保存1张图片
已保存1张图片
已保存1张图片
已保存1张图片
已保存1张图片
已保存1张图片
已保存1张图片
已保存1张图片
已保存1张图片
已保存1张图片
完整代码
import cv2
import os
def save_img():
video_path = r'F:\test\3.10'
videos = os.listdir(video_path)
for video_name in videos:
file_name = video_name.split('.')[0]
folder_name = video_path +'_'+ file_name
os.makedirs(folder_name, exist_ok=True)
print(video_path + '/' + video_name)
vc = cv2.VideoCapture(video_path + '/' + video_name)
# 读入视频文件
c = 0
rval = vc.isOpened()
while rval: # 循环读取视频帧
c = c + 1
rval, frame = vc.read()
if c%10 ==0:
pic_path = folder_name + '/'
if rval:
cv2.imwrite(pic_path + str(c) + '.png', frame) # 存储为图像,保存名为文件夹名
cv2.waitKey(1)
else:
break
vc.release()
print('save_success')
print(folder_name)
save_img()
存在问题
读取路径问题
问题:读取视频结果显示没有打开视频,检查发现视频路径错误,导致没有正确打开
解决:可以在读取之前检查路径,即判断要保存的文件夹是否存在,不存在就创建该文件夹。代码如下:
if not os.path.exists(path):
os.makedirs(path)
中文路径问题
问题:cv2.imwrite()保存图像路径不能存在中文字符,否则无法保存,并且没有任何提示!!!
解决:改为英文路径即可。
最终结果
来源:https://blog.csdn.net/zhouxuechao/article/details/115221221
标签:opencv,读取,视频
0
投稿
猜你喜欢
Python合并pdf文件的工具
2021-09-09 23:28:47
在sql中返回插入的记录的id
2008-12-21 15:54:00
Python运行错误异常代码含义对照表
2023-11-14 09:20:09
Python中scatter散点图及颜色整理大全
2022-10-06 02:17:51
python使用nibabel和sitk读取保存nii.gz文件实例
2021-03-11 16:12:53
Python读取xlsx文件报错:xlrd.biffh.XLRDError: Excel xlsx file;not supported问题解决
2021-02-02 16:08:59
python super()函数的基本使用
2022-01-11 05:24:40
python3+openCV 获取图片中文本区域的最小外接矩形实例
2022-03-16 00:57:11
django框架实现模板中获取request 的各种信息示例
2023-08-31 05:16:41
ASP.NET中MVC从后台控制器传递数据到前台视图的方式
2023-06-29 07:09:39
在ORACLE移动数据库文件
2010-08-02 12:54:00
使用Django开发简单接口实现文章增删改查
2023-02-12 22:29:37
php设计模式 Singleton(单例模式)
2023-11-20 14:37:50
用Python实现读写锁的示例代码
2022-09-19 13:51:01
asp正则表达式详细说明
2008-10-23 16:23:00
python3使用requests模块爬取页面内容的实战演练
2022-01-08 18:26:57
python3实现UDP协议的服务器和客户端
2022-07-01 09:17:08
Python爬虫实战演练之采集拉钩网招聘信息数据
2022-02-05 12:54:32
php生成静态页面并实现预览功能
2023-11-15 08:37:11
如何决定是否将登录内容保存到Cookie里?
2009-12-16 18:54:00