如何在 Python 中使用 try - except 语句捕获 CV2 错误

问题描述 投票:0回答:1

所以,我有一些按照模式保存的 png 文件

名称_编号1_部分_编号2

number1和number2这两个字段都是整数,这样就命名为一个文件

name_1_section_23

例如。

现在,我想用 cv2 加载它们,以读出它们中黑色像素的份额。我为此使用两个嵌套循环。问题是,某些 number1-number2 组合不存在。 “name_4_section_27”可能不存在,而“name_1_section27”则存在。如果这是一个常规的 Python 命令,那么这不是问题,那么我只会使用 except“FileNotFoundError”。

我已经尝试过:

for i in range(n, k):
    for j in range(n, z):
        try: img = cv2.imread(fp + r"name_" + str(i) + "_section_" + str(j) + ".png")
        except (cv2.error, cv2.Error.StsAssert): print(fp + r"name_" + str(i) + "_section_" + str(j) + ".png does not exist")
        some Code
        [...]

然而,cv2 仍然向我抛出错误消息。 except 语句似乎不起作用。我使用了here给出的错误代码,请参阅-215,但这对解决问题没有帮助。我已经尝试了 cv、cv2、opencv、opencv-python.error 的大多数组合,但没有成功。我尝试使用 except error as e 这没有帮助。除此之外,我尝试通过使用 img = open(file, "b") 捕获 FileNotFoundError 来解决这个问题,但这不能与 cv2.imread 一起使用(至少据我所知)。

由于文件很多,我不想手动打开它们。有什么方法可以用 try 捕获 CV2 错误 - 除了或者还有其他解决方法吗?

KR

python loops opencv try-except imread
1个回答
0
投票

您可以使用 Exception 关键字来捕获您需要捕获的错误。

except Exception: print(fp + r"name_" + str(i) + "_section_" + str(j) + ".png does not exist")
© www.soinside.com 2019 - 2024. All rights reserved.