如何处理 CV2(Cv2.imwrite) 中的错误?
How to handle an error in CV2(Cv2.imwrite)?
我正在尝试处理 cv2.imwrite 不断抛出的错误,它不断到达文件夹中完全相同的图像,然后在 cv2.imwrite 处显示“-215:断言失败”行,我没有太多运气为这种类型的错误编写故障保险柜,它正在正确读取所以我不知道为什么它不会写。
我试过这两种方法:
writeStatus = cv2.imwrite('output/'+ i, cropped)
if writeStatus is True:
print('Image Written')
else:
print('Error saving photo')
cv2.imwrite('rejected/'+ i, image)
if cv2.imwrite('output/'+ i, cropped) == True:
print('Image write succeeded')
else:
if cv2.imwrite('rejected/'+ i, image)== True:
print ('Cropped image could not be written, sent to rejects')
else:
print('writing error, script stopped')
break
我不知道为什么它不保存图像,到目前为止它似乎只讨厌这个特定的图像,即使图像单独在一个文件夹中它也不会写入它,老实说我不在乎,只要我能将这样的图像输出到拒绝文件夹,而不是杀死整个脚本。
编辑 我尝试使用
writeStatus = cv2.imwrite('output/'+ i, cropped)
if writeStatus is True:
print('Image Written')
else:
print('Error saving photo')
continue
错误仍然停止了脚本
建议#1
如果我们看一下语句:
writeStatus = cv2.imwrite('output/'+ i, cropped)
'output/' + i
应该是图片名称,裁剪后应该是图片。
据我了解,您想保存第 i
个值,但正确的方法是:
from os.path import join
filename = join('output', str(i) + '.png') # you can use other extensions like .jpg
cv2.imwrite(filename, cropped)
但是,如果 cropped
变量是图像,则为真。
建议 #2
如果单个图像导致问题而您不在乎,您可以使用 try-except
块和 continue
关键字
try:
writeStatus = cv2.imwrite(...)
.
.
except:
continue
我正在尝试处理 cv2.imwrite 不断抛出的错误,它不断到达文件夹中完全相同的图像,然后在 cv2.imwrite 处显示“-215:断言失败”行,我没有太多运气为这种类型的错误编写故障保险柜,它正在正确读取所以我不知道为什么它不会写。 我试过这两种方法:
writeStatus = cv2.imwrite('output/'+ i, cropped)
if writeStatus is True:
print('Image Written')
else:
print('Error saving photo')
cv2.imwrite('rejected/'+ i, image)
if cv2.imwrite('output/'+ i, cropped) == True:
print('Image write succeeded')
else:
if cv2.imwrite('rejected/'+ i, image)== True:
print ('Cropped image could not be written, sent to rejects')
else:
print('writing error, script stopped')
break
我不知道为什么它不保存图像,到目前为止它似乎只讨厌这个特定的图像,即使图像单独在一个文件夹中它也不会写入它,老实说我不在乎,只要我能将这样的图像输出到拒绝文件夹,而不是杀死整个脚本。 编辑 我尝试使用
writeStatus = cv2.imwrite('output/'+ i, cropped)
if writeStatus is True:
print('Image Written')
else:
print('Error saving photo')
continue
错误仍然停止了脚本
建议#1
如果我们看一下语句:
writeStatus = cv2.imwrite('output/'+ i, cropped)
'output/' + i
应该是图片名称,裁剪后应该是图片。
据我了解,您想保存第 i
个值,但正确的方法是:
from os.path import join
filename = join('output', str(i) + '.png') # you can use other extensions like .jpg
cv2.imwrite(filename, cropped)
但是,如果 cropped
变量是图像,则为真。
建议 #2
如果单个图像导致问题而您不在乎,您可以使用 try-except
块和 continue
关键字
try:
writeStatus = cv2.imwrite(...)
.
.
except:
continue