我正在编写一个简单的程序,用一系列图像读取并执行一些操作。其中一个输入图像有一些错误(我认为这是在数据传输过程中断开拇指驱动器的结果)。
因此,涉及输入图像的唯一不会导致程序冻结的语句是cv2.imread()
。当我的程序到达任何涉及输入的语句时,它就会冻结。我尝试将这些语句放在try-catch
块中(以便抛出错误并跳过此图像)但没有任何变化。有什么我可以做的让我的程序看到输入中的错误然后忽略它并转到下一个图像而不是冻结?
答案 0 :(得分:0)
根据OpenCV doc:
函数imread从指定文件加载图像并返回它。如果无法读取图像(由于文件丢失,权限不正确,格式不受支持或无效),该函数返回一个空矩阵(Mat :: data == NULL)。
因此,只需检查for fname in fnames:
img = cv2.imread(fname)
if img is None:
continue
# Do your processing here
值,例如:
{{1}}