python - OpenCV从缓冲区获取缩略图

标签 python django opencv

我正在尝试编写一个脚本,该脚本允许用户上传视频并获取从视频第一帧制作的缩略图。我现在拥有的脚本没有引发任何错误,但是创建缩略图时,它是损坏的图像,只有13b,我希望它至少是几kb。

f = request.FILES['media-video']
cap = cv2.VideoCapture(f.read())
img = cap.read()
thumb_buf = StringIO.StringIO()
thumb_buf.write(img)
content = thumb_buf.getvalue()
blob_service.put_blob('vid-thumbnail', thumbnail_name, content, x_ms_blob_type='BlockBlob')
thumb_buf.close()
cap.release()

如果我执行cap = cv2.VideoCapture(f)而不是f.read(),则会收到错误消息an integer is required

如果我使用cv2.imencode('.png', img[1])而不是StringIO将图像写入缓冲区,则会收到错误opencv/modules/highgui/src/loadsave.cpp:429: error: (-215) code in function imencode
关于该脚本为何创建损坏的缩略图的任何想法?

编辑:看起来问题出在VideoCapture(f.read())上。 img甚至在将其写入StringIO之前返回None

最佳答案

您的代码中有一个错误。
read()返回一个元组(retval,图像),因此将第3行更改为:

hello, img = cap.read()

关于python - OpenCV从缓冲区获取缩略图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21586114/

相关文章:

python - 现在尝试使用 BeautifulSoup 和 Python 3 从类中提取 `href`。

python - 如何获取多个模型中的最新条目 - django python

python - 错误是 : No module named postgresql. base

django - 如何在DetailView中引用pk

python - OpenCV - 3.0 相机校准给出错误

python - Django:先有鸡还是先有蛋的问题

Python WebSocket 客户端连接但不发送消息

python - 在访问 python 中的对象时返回默认成员

python - 计算图像中的单元格数

c++ - 在 OpenCV 2.3.1 中使用 calcOpticalFlowPyrLK 时出错