2015-01-21 69 views
-1

我试图让使用opencv和Python上的网络摄像头霍夫线。错误霍夫变换线

但是我得到一个错误作为Traceback(最近调用最后一个):文件“C:/Python27/Hough_video_try.py”,第14行,对于rho,theta在行[0]中:TypeError:'NoneType'对象有没有属性 '的GetItem'

下面是我的代码,请帮助

import numpy as np 
import cv2 

cam = cv2.VideoCapture(0) 

while (True): s, img = cam.read() 
    winName = "Movement Indicator" 
    cv2.namedWindow(winName, cv2.WINDOW_AUTOSIZE) 
    edges = cv2.Canny(img,100,200) 
    lines = cv2.HoughLinesP(edges,1,np.pi/180,2,None,30,1) 
    if lines is None: 
    for rho,theta in lines[0]: 

     pt1 = (line[0],line[1]) 
     pt2 = (line[2],line[3]) 
     cv2.line(img, pt1, pt2, (0,0,255), 3) 


    cv2.imshow('edges',edges) 
    cv2.imshow('original',img) 
    if cv2.waitKey(1) & 0xff == ord('q'): 
    break 

    cam.release() 
    cv2.destroyAllWindows() 
+0

哪行触发错误? – karlphillip 2015-01-21 11:41:01

+0

使用'if not lines is None',处理None对象有什么乐趣? – ZdaR 2015-01-21 11:41:36

+0

显然'线条是无';事实上,你已经明确地检查过“如果行是None”,那么你应该知道这一点。你为什么试图索引到'None'?你的意思是“如果线不是无”? – jonrsharpe 2015-01-21 11:41:54

回答

-1

问题是条件要检查

if lines is None: 

    for rho,theta in lines[0]: 

如果linesNone如何获得None[0]

请更改条件

if lines is not None: 

    for rho,theta in lines[0]: