ビデオファイル(つまりhttps://www.example.com/myvideo.mp4
)があり、OpenCVで読み込む必要があります。
画像で同等の処理を行うことは非常に簡単です。
imgReq = requests.get("https://www.example.com/myimage.jpg")
imageBytes = np.asarray(bytearray(data), dtype=np.uint8)
loadedImage = cv2.imdecode(image, cv2.IMREAD_COLOR)
次のようなことをしたいと思います(loadedVideo
はOpenCVがcv2.VideoCapture
から返すものに似ています):
videoReq = requests.get("https://www.example.com/myimage.mp4")
videoBytes = np.asarray(bytearray(data), dtype=np.uint8)
loadedVideo = cv2.videodecode(image, cv2.IMREAD_COLOR)
ただし、cv2.videodecode
は存在しません。何か案は?
編集:これはOpenCVだけでは行き止まりかもしれないので、OpenCVにロードする前に他のイメージングライブラリを組み合わせたソリューションを探しています...そのようなソリューションが存在する場合。
cv2.videocode
は、OpenCV API
またはOpenCV 2.x
のいずれかの有効なOpenCV 3.x
ではないようです。
以下は、OpenCV 3
クラスを使用するcv2.VideoCapture
で機能するサンプルコードです。
import numpy as np
import cv2
# Open a sample video available in sample-videos
vcap = cv2.VideoCapture('https://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_2mb.mp4')
#if not vcap.isOpened():
# print "File Cannot be Opened"
while(True):
# Capture frame-by-frame
ret, frame = vcap.read()
#print cap.isOpened(), ret
if frame is not None:
# Display the resulting frame
cv2.imshow('frame',frame)
# Press q to close the video windows before it ends if you want
if cv2.waitKey(22) & 0xFF == ord('q'):
break
else:
print "Frame is None"
break
# When everything done, release the capture
vcap.release()
cv2.destroyAllWindows()
print "Video stop"
詳細については、こちらを確認してください ビデオ入門 チュートリアル。
この助けを願っています。
VideoCaptureを使用してビデオを読む必要があります。今のところそれを回避する方法は他にありません。自分で定義しない限り。
ビデオは、定義されたフレームレートで変化する画像の組み合わせであることに注意してください。
したがって、whileループで各フレームを読み取ることができます。 imdecode関数を適用するとき。
import numpy as np
import cv2
cap = cv2.VideoCapture('https://www.example.com/myimage.mp4')
while(cap.isOpened()):
ret, image = cap.read()
loadedImage = cv2.imdecode(image, cv2.IMREAD_COLOR)
cv2.imshow('frame',loadedImage)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()