python TypeError:“NoneType”对象没有属性“__getitem__”

2024-04-29

这次我尝试另一个例子索莱姆的博客 http://www.janeriksolem.net/2012/08/reading-gauges-detecting-lines-and.html。它是一个使用霍夫变换检测图像中的直线和圆的模块。 这是代码(houghlines.py):

import numpy as np
import cv2

"""
Script using OpenCV's Hough transforms for reading images of 
simple dials.
"""

# load grayscale image
im = cv2.imread("house2.jpg")
gray_im = cv2.cvtColor(im, cv2.COLOR_RGB2GRAY)

# create version to draw on and blurred version
draw_im = cv2.cvtColor(gray_im, cv2.COLOR_GRAY2BGR)
blur = cv2.GaussianBlur(gray_im, (0,0), 5)

m,n = gray_im.shape

# Hough transform for circles
circles = cv2.HoughCircles(gray_im, cv2.cv.CV_HOUGH_GRADIENT, 2, 10, np.array([]), 20, 60, m/10)[0]

# Hough transform for lines (regular and probabilistic)
edges = cv2.Canny(blur, 20, 60)
lines = cv2.HoughLines(edges, 2, np.pi/90, 40)[0]
plines = cv2.HoughLinesP(edges, 1, np.pi/180, 20, np.array([]), 10)[0]

# draw 
for c in circles[:3]:
 # green for circles (only draw the 3 strongest)
 cv2.circle(draw_im, (c[0],c[1]), c[2], (0,255,0), 2) 

for (rho, theta) in lines[:5]:
 # blue for infinite lines (only draw the 5 strongest)
 x0 = np.cos(theta)*rho 
 y0 = np.sin(theta)*rho
 pt1 = ( int(x0 + (m+n)*(-np.sin(theta))), int(y0 + (m+n)*np.cos(theta)) )
 pt2 = ( int(x0 - (m+n)*(-np.sin(theta))), int(y0 - (m+n)*np.cos(theta)) )
 cv2.line(draw_im, pt1, pt2, (255,0,0), 2) 

for l in plines:
 # red for line segments
 cv2.line(draw_im, (l[0],l[1]), (l[2],l[3]), (0,0,255), 2)

cv2.imshow("circles",draw_im)
cv2.waitKey()

# save the resulting image
cv2.imwrite("res.jpg",draw_im)

当我通过以下方式在 python 中执行文件时:

execfile('houghlines.py')

出现以下错误:

File "houghlines.py", line 24, in <module>
    lines = cv2.HoughLines(edges, 2, np.pi/90, 40)[0]
TypeError: 'NoneType' object has no attribute '__getitem__'

你们知道如何解决吗?
提前致谢。


这是因为阈值lines = cv2.HoughLines(edges, 2, np.pi/90, 40)[0],您传递的最后一个参数。它指示被视为一条线的最小长度,在您的情况下为 40 像素。尝试减少它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python TypeError:“NoneType”对象没有属性“__getitem__” 的相关文章

随机推荐

  • 产品动态折扣

    在现实世界中 您购买的产品的折扣非常有趣 例如 卖家通过以下方式为其产品提供折扣 购买一份数量不会有折扣 购买 2 个他提供 10 折扣 购买 4 和 5 折扣为 20 6 日及以后 22 在电子商务应用程序中实现此目的的最佳方法是什么 取
  • 用作 MAMP 起始页 URL 的 index.* 文件在哪里?

    我试图了解 MAMP 如何管理 Apache Web 服务器 但我找不到index 用作 MAMP 起始页的文件 虚拟主机配置 httpd vhosts conf 不包括在内并且Applications MAMP htdocs仅包含我自己的
  • 使 minGW 控制台程序在没有控制台的情况下运行

    我在 MinGW 中制作了一个控制台程序 它执行网络和文件操作 然而 它是一个控制台程序 如何让它安静地运行 没有控制台 没有窗口 尝试这个 ShowWindow GetConsoleWindowHandle SW HIDE GetCons
  • 区分大小写的字符串操作

    假设我们有一个变量 例如 set test This is a Test string 我们想要替换每个小写字母t与大写X如此期望的输出 This is a TesX sXring 我尝试使用字符串操作set test test t X 但
  • 基于输入键的 Tabindex 通过获取表单元素在 Jquery 中不起作用

    我有一个表单 我可以通过它获取所有表单元素serializeArray 我想要focus 使用 Enter 键根据其 tabindex 值在表单元素上 只有当它有价值时 否则就专注于它本身 对 jQuery 来说不太新鲜 所以如果有任何错误
  • 在 Cartopy 中隐藏高纬度非矩形投影的右侧轴(纬度)标签

    我试图使用以下命令隐藏此 Cartopy 地图中的右侧标签 又名纬度 right labels False但仅适用于某些值 但是 可以使用隐藏顶部 底部标签top labels False and bottom label False 重现
  • 按下后退按钮时停止 Fragments 中的 AsyncTask

    我有一个托管片段的活动 按下按钮会通过 FragmentTransaction 从片段 A 转到片段 B 并将其添加到返回堆栈中 现在片段 B 有一个 AsyncTask 实现 它从 sdcard 加载图像并在加载图像时将其发布 如果我按
  • 关于:链接(Markdown 页面)上的blank#blocked

    在 Markdown 页面中 Microsoft TFS Wiki 我尝试创建 A 标签file link a href file txt a 点击 Chrome 后 我得到了 about blank blocked 这不是 Chrome
  • JPA 继承无法确定类型

    我有一个简单的 JPA 映射 但我不断得到一个Could not determine type for例外 setter 和 getter 被省略 Entity Inheritance strategy InheritanceType JO
  • UINavigationController如何设置标题

    我有一个用于通用项目列表的控制器 视图 可以扩展它以显示自定义列表 列表和导航工作正常 但我无法更改 UINavigationController 的标题 在通用控制器中 void viewDidLoad super viewDidLoad
  • React Native 溢出和滚动

    我开始学习 React Native 据我所知 既有 overflow scroll 样式属性又有ScrollView 在 View 中使用 overflow scroll 是否会使其成为 React Native 中的 ScrollVie
  • 在 virtualenv 中安装 Python-Dbus

    我正在虚拟环境中运行一个应用程序 需要访问 DBus 主要是与网络管理器交互 我尝试使用 easyinstall 和 pip 安装 Dbus Python 但都失败了 当我尝试这样做时 myvirtualenv borrajax borra
  • Google CoLab 中的 Python 3 支持

    我一直在尝试使用 Jupyter 笔记本https colab research google com https colab research google com 并且默认情况下它们似乎运行 Python 2 7 有什么方法可以在 Co
  • 解决 Sinatra 路线方法中缺乏上下文的问题

    在调用我的路线时 我一直遇到缺少实例和 nilClass 错误的问题 在深入研究源代码之后 似乎generate method调用基本上使用初始方法的块创建了一个新方法 get do some local instance do somet
  • 无法找到任何至少支持 iOS 8.0 的 Xcode 安装

    我已经有一段时间没有使用 Appecelerator Titanium 的开发工具了 Studio 和 CLI 现在我尝试在 iOS 模拟器中运行现有的应用程序 从工作室我无法选择 iOS 模拟器 当我使用 CLI 并执行 appc run
  • 将 LinkedHashset 内容复制到新的 ArrayList?

    我有一个最初包含一些内容的 listView 如果它得到相同的内容 我通过删除重复linkedhashset 现在 我想复制linkedhashset内容 即没有重复的内容到新的ArrayList 我尝试复制通过 p addAll 0 lh
  • 无法向 openfire 服务器发送消息

    我无法使用 SMACK API 向 openfire 服务器上的 XMPP 客户端发送消息 我不确定我哪里出错了 我在 gtalk 上测试了相同的代码 它工作正常 public class SenderTest public static
  • 在php中将指数数转换为小数

    我有一个指数格式的浮点数 即4 1595246940817E 17我想将其转换为十进制数 例如 2 99 等 任何帮助将不胜感激 format number sprintf 似乎不适合我 你需要像 BC 这样更好的数学扩展数学 GMP ht
  • WPF UserControls - 在 UserControl 内的按钮上设置 .Command 属性

    我有一个包含按钮和其他一些控件的 UserControl
  • python TypeError:“NoneType”对象没有属性“__getitem__”

    这次我尝试另一个例子索莱姆的博客 http www janeriksolem net 2012 08 reading gauges detecting lines and html 它是一个使用霍夫变换检测图像中的直线和圆的模块 这是代码