当Houghlines没有检测到任何行时,在python中捕获错误

时间:2017-05-20 13:51:12

标签: python opencv

我一直在查看opencv的{​​{1}}来创建一个跟随机器人的线,只是为了看看它是否可行。

我的代码基于我在网络上找到的众多示例之一。 偶尔没有检测到任何行,我的程序崩溃了。

当它崩溃时,Houghlines会返回type NoneType,请参阅下面代码段中的行。 我在网上发现了很多关于使用(或不)检查type(lines)==NoneType,实例等的讨论。首选解决方案似乎是使用try/except构造。

最后,我在新变量上使用了try/except构造

numLines=lines.size 

这种方法有效,我的程序不再崩溃。

def detectLines(image):
    gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
    edges = cv2.Canny(gray,50,150,apertureSize=3)
    lines = cv2.HoughLines(edges,1,np.pi/180,200)
    try:
        # way of determining if lines have been detected
        numLines = lines.size
        modifedImage=drawLines(image,lines)
        key = showImage(modifedImage)
    except:
        key = 0
    return key 

我对Python比较陌生,我的方法是“python”方式,还有更好的方法吗?

0 个答案:

没有答案