所以,我有一些按照模式保存的 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
您可以使用 Exception 关键字来捕获您需要捕获的错误。
except Exception: print(fp + r"name_" + str(i) + "_section_" + str(j) + ".png does not exist")