我一直在查看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”方式,还有更好的方法吗?