Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python houghttransform线中的错误_Python_Opencv_Numpy_Hough Transform - Fatal编程技术网

Python houghttransform线中的错误

Python houghttransform线中的错误,python,opencv,numpy,hough-transform,Python,Opencv,Numpy,Hough Transform,我正在尝试在网络摄像机上使用Opencv和Python获得hough线 但我在回溯时收到了一个错误(上次调用):文件“C:/Python27/Hough_video_try.py”,第14行,在for rho中,θ在[0]行中:TypeError:“NoneType”对象没有属性“getitem” 下面是我的代码,请帮忙 import numpy as np import cv2 cam = cv2.VideoCapture(0) while (True): s, img = cam.rea

我正在尝试在网络摄像机上使用Opencv和Python获得hough线

但我在回溯时收到了一个错误(上次调用):文件“C:/Python27/Hough_video_try.py”,第14行,在for rho中,θ在[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()

问题在您正在检查的情况下

if lines is None:

    for rho,theta in lines[0]:
如果
如何获得
无[0]

请改变条件

if lines is not None:

    for rho,theta in lines[0]:

哪一行触发该错误?使用
如果不是行为无
,处理无对象的乐趣是什么?显然
行为无
;事实上,如果lines为None,您已经显式地检查了
,所以您应该知道这一点。为什么要尝试索引到
?!你的意思是说如果行不是无的话,那是我犯的愚蠢的错误。我检查了一个错误的情况。但是现在我得到了一个特殊的错误作为回溯(最近一次调用是最后一次):文件“C:/Python27/Hough_video_try.py”,第14行,在for rho中,θ在第[0]行中:ValueError:太多的值无法解包我使用了与上面给出的相同的代码,条件正确。请帮我解决这个问题error@Anurag这可能是因为第[0]行返回的值比第2行多,所以返回的值不能只包含2个变量,我猜它返回4个值,请通过运行len(第[0]行)确认它。它将为您提供返回值的数量计数,然后您可以使用w,x,y,z=第[0]行但是变量的数量总是取决于函数调用返回元素的数量。