前提・実現したいこと
mp4の動画をOpenCVで読み込んで,フレーム数×縦サイズ×横サイズ×チャネル数という4次元の配列を作りたいです.
発生している問題・エラーメッセージ
ndarrayで配列を作り,フレームごとに読み込んだ縦サイズ×横サイズ×チャネル数の配列をappendしています.
しかし完成した配列の形を見てみると,縦サイズ×横サイズ×チャネル数という3次元のままです.
フレームの数だけappendしているはずなのにフレーム数×縦サイズ×横サイズ×チャネル数という4次元の配列になっていません.
該当のソースコード
python
1#filepath = 読み込みたい動画へのパス 2cap = cv2.VideoCapture("filepath") 3n=0 4 5# 動画終了まで繰り返し 6while(cap.isOpened()): 7 # フレームを取得 8 ret, frame = cap.read() 9 if ret == False: 10 break 11 12 frame = np.array(list(frame)) 13 # フレームをdataにappendする 14 if n==0: 15 data = frame 16 else: 17 np.append(data,frame,axis=0) 18 n += 1 19 20print(data.shape) 21cap.release()
試したこと
nはフレーム数分だけ更新されていました.
if文には最初だけ入り, あとはelse文に入っていました.
np.appendの軸指定を0~2まで変えてみましたが変化はありませんでした.
補足情報(FW/ツールのバージョンなど)
Python 3.7.4
numpy 1.18.4
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/25 14:57