如何解决错误:函数'imwrite'中的!_img.empty
我想从名为project.avi
的视频中创建帧并将其保存到frameIn
文件夹中。但是某些类型的错误不让我做。我怎么解决这个问题。这是代码:
cap = cv2.VideoCapture('project.avi')
currentFrame = 0
while(True):
ret,frame = cap.read()
name = 'frameIn/frame' + str(currentFrame) + '.jpg'
print ("Creating file... " + name)
cv2.imwrite(name,frame)
frames.append(name)
currentFrame += 1
cap.release()
cv2.destroyAllWindows()
错误是:
Traceback (most recent call last):
File "videoreader.py",line 28,in <module>
cv2.imwrite(name,frame)
cv2.error: OpenCV(4.4.0) /private/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/pip-req-build-2rx9f0ng/opencv/modules/imgcodecs/src/loadsave.cpp:738: error: (-215:Assertion failed) !_img.empty() in function 'imwrite'
解决方法
原因可能是图像为空,所以,
在通过以下方式读取帧之前,应检查天气视频是否已正确打开:cap.isOpened()
。
然后,在执行ret,frame = cap.read()
后检查ret
的变量值是否为true,以确保正确抓取帧。
要清除的代码:
cap = cv2.VideoCapture('project.avi')
if cap.isOpened():
currentFrame = 0
while(True):
ret,frame = cap.read()
if ret :
name = 'frameIn/frame' + str(currentFrame) + '.jpg'
print ("Creating file... " + name)
cv2.imwrite(name,frame)
frames.append(name)
currentFrame += 1
cap.release()
cv2.destroyAllWindows()
我希望它能对您有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。