将通过 django 上传的视频传递给 cv2
Pass video uploaded via django to cv2
我正在通过 django 上传视频并想使用 cv2 处理它。
这是通过 django 上传的视频的访问方式。
video_obj = request.FILES['file_name']
接下来我想把它传递给opencv。我不想先将视频保存在磁盘中,然后使用以下代码通过 cv2 访问它
cap = cv2.VideoCapture(vid_path)
我尝试通过这种方式将此 video_obj 传递给 VideoCapture
video_obj = request.FILES['file_name']
cap = cv2.VideoCapture(video_obj)
但是我得到以下错误
Can't convert object of type 'TemporaryUploadedFile' to 'str' for 'filename'
VideoCapture() missing required argument 'apiPreference' (pos 2)
好像是 cv2.VideoCapture
can only work with filepath。
因此,要从 TemporaryUploadedFile
对象获取路径,您可以使用 temporary_file_path()
方法。
@Abdul Niyas P M的答案是正确的,但这里有一个像我这样的人的例子:
video_obj = request.FILES['file_name']
vid_path = video_obj.temporary_file_path()
cap = cv2.VideoCapture(vid_path)
我正在通过 django 上传视频并想使用 cv2 处理它。 这是通过 django 上传的视频的访问方式。
video_obj = request.FILES['file_name']
接下来我想把它传递给opencv。我不想先将视频保存在磁盘中,然后使用以下代码通过 cv2 访问它
cap = cv2.VideoCapture(vid_path)
我尝试通过这种方式将此 video_obj 传递给 VideoCapture
video_obj = request.FILES['file_name']
cap = cv2.VideoCapture(video_obj)
但是我得到以下错误
Can't convert object of type 'TemporaryUploadedFile' to 'str' for 'filename'
VideoCapture() missing required argument 'apiPreference' (pos 2)
好像是 cv2.VideoCapture
can only work with filepath。
因此,要从 TemporaryUploadedFile
对象获取路径,您可以使用 temporary_file_path()
方法。
@Abdul Niyas P M的答案是正确的,但这里有一个像我这样的人的例子:
video_obj = request.FILES['file_name']
vid_path = video_obj.temporary_file_path()
cap = cv2.VideoCapture(vid_path)