首页 > 解决方案 > 将视频转换为形状形式的张量(TIME、HEIGHT、WIDTH、CHANNELS)

问题描述

我正在使用给定的代码将视频转换为视频帧

将视频转换为帧:

import cv2
import numpy as np
import os

# Playing video from file:
cap = cv2.VideoCapture('/home/administrator/Desktop/Projects/gait-     recognition/video/p008-n05.avi')
frames = []
try:
        if not os.path.exists('data'):
        os.makedirs('data')
except OSError:
    print ('Error: Creating directory of data')
currentFrame = 0
while(True):
# Capture frame-by-frame
    ret, frame = cap.read()
   # Saves image of the current frame in jpg file
   name = './data/frame' + str(currentFrame) + '.jpg'
print ('Creating...' + name)
cv2.imwrite(name, frame)
frames.append(frame)
# To stop duplicate images
currentFrame += 1
if ret == False:
   break
# When everything done, release the capture
cap.release()
imgs = np.array(frames)

这让我以单个多维数组的形式输出图像。这是必需的,因为

从形状(时间、高度、宽度、通道)的输入帧创建特征

spatial_features = net_pose.feed_forward_features(imgs)

给出错误:SETTING AN ARRAY ELEMENT WITH A SEQUENCE

我应该如何修改 opencv 代码以获得所需的张量图像形状?

标签: opencvtensorflowimage-processingdeep-learningdata-science

解决方案


推荐阅读