Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 删除以下内容:错误:(-215:断言失败)_函数中的img.empty();简历:imwrite';_Python_Opencv - Fatal编程技术网

Python 删除以下内容:错误:(-215:断言失败)_函数中的img.empty();简历:imwrite';

Python 删除以下内容:错误:(-215:断言失败)_函数中的img.empty();简历:imwrite';,python,opencv,Python,Opencv,我试图通过下面的python代码从视频中提取剪影,但在提取后,在最后一点上,我得到以下错误: cv2.error:OpenCV(4.1.2)C:\projects\opencvpython\OpenCV\modules\imgcodecs\src\loadsave.cpp:715:error:(-215:断言失败)_函数“cv::imwrite”中的img.empty() 如何删除此错误 Python代码是: import numpy as np import cv2 import os cap

我试图通过下面的python代码从视频中提取剪影,但在提取后,在最后一点上,我得到以下错误:

cv2.error:OpenCV(4.1.2)C:\projects\opencvpython\OpenCV\modules\imgcodecs\src\loadsave.cpp:715:error:(-215:断言失败)_函数“cv::imwrite”中的img.empty()

如何删除此错误

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()
将numpy导入为np
进口cv2
导入操作系统
cap=cv2.VideoCapture('E:\\DCIM\u带两个\u循环\\In\u Lab\\021\\MVI\u 0098.MP4')
fgbg=cv2.bgsegm.createBackgroundSubtractorMOG()
计数=0;
而1:
计数=计数+1
ret,frame=cap.read()
fgmask=fgbg.apply(帧)
#cv2.imshow(“帧”,fgmask)
如果计数小于10:
cv2.imwrite('E:\\DCIM\u带两个周期\\In\u labsilhout\\image000'+str(count)+'.jpg',fgmask)
elif计数<100:
cv2.imwrite('E:\\DCIM\u带两个周期\\In\u LabSilhoutte\\image00'+str(count)+'.jpg',fgmask)
elif计数<1000:
cv2.imwrite('E:\\DCIM\u带两个周期\\In\u labsilhout\\image0'+str(count)+'.jpg',fgmask)
elif计数<10000:
cv2.imwrite('E:\\DCIM\u带两个周期\\In\u LabSilhoutte\\image'+str(count)+'.jpg',fgmask)
k=cv2。等待键(30)和0xff
如果k==27:
打破
第1章释放()
#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()
将numpy导入为np
进口cv2
导入操作系统
cap=cv2.VideoCapture('E:\\DCIM\u带两个\u循环\\In\u Lab\\021\\MVI\u 0098.MP4')
fgbg=cv2.bgsegm.createBackgroundSubtractorMOG()
计数=0;
而1:
计数=计数+1
打印(计数)
ret,frame=cap.read()
fgmask=fgbg.apply(帧)
#cv2.imshow(“帧”,fgmask)
打印((fgmask为无)=真)
如果(fgmask为None)=False:
如果计数小于10:
cv2.imwrite('E:\\DCIM\u带两个周期\\In\u labsilhout\\image000'+str(count)+'.jpg',fgmask)
elif计数<100:
cv2.imwrite('E:\\DCIM\u带两个周期\\In\u LabSilhoutte\\image00'+str(count)+'.jpg',fgmask)
elif计数<1000:
cv2.imwrite('E:\\DCIM\u带两个周期\\In\u labsilhout\\image0'+str(count)+'.jpg',fgmask)
elif计数<10000:
cv2.imwrite('E:\\DCIM\u带两个周期\\In\u LabSilhoutte\\image'+str(count)+'.jpg',fgmask)
其他:
打破
k=cv2。等待键(30)和0xff
如果k==27:
打破
第1章释放()
#cv2.destroyAllWindows()

您做了哪些研究?毫无疑问,您发现了几个关于堆栈溢出的问题。这些问题的答案对你没有帮助吗?解释问题是什么以及你做了什么来解决它。没有解释的“代码转储”对其他人没有帮助。