Python:错误检查未能捕获异常

2024-04-28 09:10:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我用的是python的精简版,micro python。
我正在做一些图像处理,并试图从一个名为“find_line_segments”的方法中找到返回的最长行(它执行Canny Edge和Hough Lines变换)。
但是!我总是出错。
代码

    rl = max(img.find_line_segments(roi = r_r, threshold = 1000, theta_margin = 15, rho_margin = 15, segment_threshold = 100), key = lambda x: x.length())
    if rl is not None:
        if rl[6] > 0 :
            img.draw_line(rl.line(), color = 155)
            print("RL")
            print(rl)

错误:

^{pr2}$

该错误指向if rl is not None:行。。。我不明白为什么会导致错误。如果max()函数没有返回值(在找不到行的情况下),“If语句”永远不会执行。
我不明白什么?在

编辑:
意外删除了一些代码。在


Tags: 代码marginnoneimgthresholdifis错误
1条回答
网友
1楼 · 发布于 2024-04-28 09:10:31

在使用max函数之前,尝试将max(img.find_line_segments(...)...)语句分离为两个语句,并测试find_line_segments的结果是否为任何结果。似乎是max函数引发了异常:

# Dummy function
def find_line_segments():
    return []

max_segment = max(find_line_segments())

对于尝试在空序列上使用max()时出现此异常:

^{pr2}$

这样做可以避免出现异常。在

segments = find_line_segments()
if segments:
    max_segment = max(segments)

相关问题 更多 >