Python 如何处理输入图像中的错误
我正在编写一个简单的程序,它可以读取一系列图像并执行一些操作。其中一个输入图像有一些故障(我认为是数据传输过程中断开thumb drive的连接造成的) 因此,涉及输入图像的唯一语句不会导致程序冻结是Python 如何处理输入图像中的错误,python,opencv,image-processing,Python,Opencv,Image Processing,我正在编写一个简单的程序,它可以读取一系列图像并执行一些操作。其中一个输入图像有一些故障(我认为是数据传输过程中断开thumb drive的连接造成的) 因此,涉及输入图像的唯一语句不会导致程序冻结是cv2.imread()。当我的程序到达任何涉及输入的语句时,它就会冻结。我尝试将这些语句放入try-catch块中(这样会抛出错误并跳过此图像),但没有任何更改。我能做些什么让我的程序看到输入中的错误,然后忽略它,转到下一个图像而不是冻结?根据: 函数imread从指定文件加载图像并返回。如果无法
cv2.imread()
。当我的程序到达任何涉及输入的语句时,它就会冻结。我尝试将这些语句放入try-catch
块中(这样会抛出错误并跳过此图像),但没有任何更改。我能做些什么让我的程序看到输入中的错误,然后忽略它,转到下一个图像而不是冻结?根据:
函数imread从指定文件加载图像并返回。如果无法读取图像(由于缺少文件、权限不正确、格式不受支持或无效),函数将返回一个空矩阵(Mat::data==NULL)
因此,只需检查None
值,例如:
for fname in fnames:
img = cv2.imread(fname)
if img is None:
continue
# Do your processing here
如果失败,则cv2.imread()返回None
。这很容易检查。