2015-01-21 3 views
-1

Я пытаюсь получить линии hough, используя Opencv и Python на веб-камере.Ошибка в линиях houghtransform

Но я получаю сообщение об ошибке как 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

+0

использовать 'if not lines is None', что интересно обрабатывать объект None? – ZdaR

+0

Понятно, что 'lines is None'; действительно, вы явно проверили 'if lines is None ', так что вы действительно должны это знать. Почему вы пытаетесь индексировать «Нет» ?! Вы имели в виду «если линии не есть»? – jonrsharpe

ответ

-1

Проблема в состоянии вы проверяете

if lines is None: 

    for rho,theta in lines[0]: 

Если lines является None как вы получите None[0]?

Пожалуйста, измените условия

if lines is not None: 

    for rho,theta in lines[0]: 
Смежные вопросы