python - 使用脚本将视频转换为训练图像数据集
问题描述
我的视频文件夹中有一个视频,我想将其转换为我的 CV 模型的图像数据集。这是我正在使用的脚本:
import cv2
import os
cam = cv2.VideoCapture('../Videos/training-videos/0.mp4')
try:
if not os.path.exists('../Videos/training-videos/data0'):
os.makedirs('../Videos/training-videos/data0')
except OSError:
print('Error: Creating directory of data0')
current_frame = 0
while (True):
ret, frame = cam.read()
if ret:
name = './data/frame' + str(current_frame) + '.jpg'
print('Creating...' + name)
cv2.imwrite(name, frame)
current_frame += 1
else:
break
cam.release()
cv2.destroyAllWindows()
我得到以下输出:
...
Creating..../data/frame19485.jpg
Creating..../data/frame19486.jpg
Creating..../data/frame19487.jpg
Creating..../data/frame19488.jpg
Creating..../data/frame19489.jpg
Creating..../data/frame19490.jpg
Creating..../data/frame19491.jpg
Creating..../data/frame19492.jpg
Creating..../data/frame19493.jpg
Creating..../data/frame19494.jpg
Creating..../data/frame19495.jpg
Creating..../data/frame19496.jpg
Creating..../data/frame19497.jpg
Creating..../data/frame19498.jpg
Creating..../data/frame19499.jpg
Creating..../data/frame19500.jpg
Creating..../data/frame19501.jpg
Creating..../data/frame19502.jpg
Creating..../data/frame19503.jpg
Creating..../data/frame19504.jpg
Creating..../data/frame19505.jpg
Creating..../data/frame19506.jpg
Creating..../data/frame19507.jpg
这一切都很好。它还会创建../Videos/training-videos/data0
文件夹,但里面没有图像。我究竟做错了什么?
解决方案
试试这个对我有用的代码。只需在路径变量中替换您的路径。如果要使用相对路径,则需要指定整个路径。除此之外,您正在创建一个目录data0并且您试图将图像放在data中。
import cv2
import os
path = 'C:/Users/hp/Pictures/Camera Roll'
cam = cv2.VideoCapture(os.path.join(path, 'video.mp4'))
try:
if not os.path.exists(os.path.join(path, 'data0')):
os.makedirs(os.path.join(path, 'data0'))
except OSError:
print('Error: Creating directory of data0')
current_frame = 0
while (True):
ret, frame = cam.read()
if ret:
name = 'data0/frame' + str(current_frame) + '.jpg'
name = os.path.join(path, name)
print('Creating...' + name)
cv2.imwrite(name, frame)
current_frame += 1
else:
break
cam.release()
cv2.destroyAllWindows()
推荐阅读
- javascript - 在 ReactJS 中返回两个相同的属性而不是一个
- python - Alembic 自动生成的修订文件的顺序
- python - GUnicorn 没有出现在本地,没有使用任何端口(Django)
- winforms - Winforms:以编程方式添加后控件不可见
- css - 如何在使用动画时调整 Angular 中组件的宽度?
- javascript - FabricJS 对象坐标相对于图像而不是整个画布
- android - com.example.myapplication.ui.home.HomeFragment 的 kotlin.KotlinNullPointerException
- csv - pyspark 将模式应用于 csv - 仅返回空值
- java - Apache Karaf 以错误开头 - protocol_version
- javascript - 如何在表单提交完成之前检测是否已按下停止加载页面按钮