python - 删除以下:错误:(-215:断言失败)!_img.empty()在函数'cv :: imwrite'中
问题描述
我试图通过下面的python代码从视频中提取剪影,但提取后,最后一点,我收到以下错误:
cv2.error: OpenCV(4.1.2) C:\projects\opencv-python\opencv\modules\imgcodecs\src\loadsave.cpp:715: error: (-215:Assertion failed) !_img.empty() in function 'cv::imwrite'
如何消除此错误。
Python代码是:
import numpy as np
import cv2
import os
cap = cv2.VideoCapture('E:\\DCIM_with_two_cycle\\In_Lab\\021\\MVI_0098.MP4')
fgbg = cv2.bgsegm.createBackgroundSubtractorMOG()
count = 0;
while 1:
count = count + 1
ret, frame = cap.read()
fgmask = fgbg.apply(frame)
# cv2.imshow('frame', fgmask)
if count < 10:
cv2.imwrite('E:\\DCIM_with_two_cycle\\In_LabSilhoutte\\image000' + str(count) + '.jpg', fgmask)
elif count < 100:
cv2.imwrite('E:\\DCIM_with_two_cycle\\In_LabSilhoutte\\image00' + str(count) + '.jpg', fgmask)
elif count < 1000:
cv2.imwrite('E:\\DCIM_with_two_cycle\\In_LabSilhoutte\\image0' + str(count) + '.jpg', fgmask)
elif count < 10000:
cv2.imwrite('E:\\DCIM_with_two_cycle\\In_LabSilhoutte\\image' + str(count) + '.jpg', fgmask)
k = cv2.waitKey(30) & 0xff
if k == 27:
break
cap.release()
#cv2.destroyAllWindows()
解决方案
我通过以下代码解决了这个问题:
import numpy as np
import cv2
import os
cap = cv2.VideoCapture('E:\\DCIM_with_two_cycle\\In_Lab\\021\\MVI_0098.MP4')
fgbg = cv2.bgsegm.createBackgroundSubtractorMOG()
count = 0;
while 1:
count = count + 1
print(count)
ret, frame = cap.read()
fgmask = fgbg.apply(frame)
# cv2.imshow('frame', fgmask)
print((fgmask is None) == True)
if (fgmask is None) == False:
if count < 10:
cv2.imwrite('E:\\DCIM_with_two_cycle\\In_LabSilhoutte\\image000' + str(count) + '.jpg', fgmask)
elif count < 100:
cv2.imwrite('E:\\DCIM_with_two_cycle\\In_LabSilhoutte\\image00' + str(count) + '.jpg', fgmask)
elif count < 1000:
cv2.imwrite('E:\\DCIM_with_two_cycle\\In_LabSilhoutte\\image0' + str(count) + '.jpg', fgmask)
elif count < 10000:
cv2.imwrite('E:\\DCIM_with_two_cycle\\In_LabSilhoutte\\image' + str(count) + '.jpg', fgmask)
else:
break
k = cv2.waitKey(30) & 0xff
if k == 27:
break
cap.release()
# cv2.destroyAllWindows()
推荐阅读
- postgresql - 如何将 csv 数据集导入 postgres。我在其他页面上尝试了解决方案,但它们不起作用
- r - Ubuntu上的R基础包未导出对象
- python - Pygame:如何将精灵对象发送到 python 服务器?
- python - 确定网页的结尾
- python - 使用 astroquery 搜索列表
- wordpress - 在后端产品页面中创建自定义隐藏字段并在 WooCommerce 产品中使用值排序方式
- javascript - 为什么 slideDown() 函数在 JQuery 事件处理程序中不起作用?
- identityserver4 - IdentityServer:SigningCredential 和 DataProtection 有什么区别?
- python - 用正则表达式替换单词列表
- python - 如何使用 python 暂停声音/歌曲?