Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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
从网络摄像头执行Hough变换时,Python OpenCV崩溃_Python_Opencv - Fatal编程技术网

从网络摄像头执行Hough变换时,Python OpenCV崩溃

从网络摄像头执行Hough变换时,Python OpenCV崩溃,python,opencv,Python,Opencv,我想我已经解决了这个问题。我正在使用IP网络摄像头流,进行canny边缘和hough变换。然后显示叠加的变换和原始图像。所以看起来很像普通的网络摄像头,但是水平线被高亮显示。 我在图像中寻找水平线。只要有水平线,它就可以正常工作。如果启动凸轮时没有任何水平线,则会出现错误: Traceback (most recent call last): File "/home/Desktop/hough.py", line 16, in <module> for line in li

我想我已经解决了这个问题。我正在使用IP网络摄像头流,进行canny边缘和hough变换。然后显示叠加的变换和原始图像。所以看起来很像普通的网络摄像头,但是水平线被高亮显示。 我在图像中寻找水平线。只要有水平线,它就可以正常工作。如果启动凸轮时没有任何水平线,则会出现错误:

 Traceback (most recent call last):
  File "/home/Desktop/hough.py", line 16, in <module>
  for line in lines[0]:
  TypeError: 'NoneType' object has no attribute '__getitem__'

显然
cv2.HoughLinesP
在没有行时返回
None

在第16行,您尝试访问
行[0]
,这实际上调用了
行。由于
的类型为
非类型
,因此它没有
\uuuu getitem\uuuu
方法

要解决此问题,例如,您可以在访问行的项目之前检查行
是否为None

if lines:
    for line in lines[0]
        [...]

(请注意,它还将检查行是否不是空列表)

我尝试了这一点,但现在我得到了一个新错误:if lines:ValueError中的第16行:包含多个元素的数组的真值不明确。使用a.any()或a.all()现在就知道了。。我使用了If-line:这很有效。Thanks@JDD您的意思是
如果行不是None:
否则它将仅在它是None时继续,并且将返回与第一条注释中写入的错误相同的错误。
if lines:
    for line in lines[0]
        [...]