我从视频文件抓取帧如下:
def capture_frame(file):
capture = cv.CaptureFromFile("video.mp4")
cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_POS_MSEC)
cv.SetCaptureProperty(capture, cv.CV_CAP_PROP_POS_MSEC, 90000)
frame = cv.QueryFrame(capture)
return frame
帧类型为cv2.cv.iplimage
。如何在不保存的情况下将此类图像转换为jpeg图像?
谢谢,
答案 0 :(得分:0)
您是否尝试过编写块?
with open('filename.jpeg', wb+') as destination:
for chunk in image_file.chunks():
destination.write(chunk)
这里也值得一看,使用opencv本地http://answers.opencv.org/question/115/opencv-python-save-jpg-specifying-quality-gives-systemerror/。虽然,不确定您为什么要尝试将.mp4
保存到.jpeg
...
答案 1 :(得分:0)
以下内容应该为您提供图像的jpeg表示的字节。
def capture_frame(file):
capture = cv.CaptureFromFile(file)
cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_POS_MSEC)
cv.SetCaptureProperty(capture, cv.CV_CAP_PROP_POS_MSEC, 90000)
frame = cv.QueryFrame(capture)
return cv.EncodeImage('.jpg', frame).tostring()
capture_frame("video.mp4")
我已将EncodeImage
的结果写入以二进制(open('somefile','wb')
)打开的文件中,从而生成有效的JPEG。