python - 我在 Python 脚本中有一个 TypeError
问题描述
我写了这个短代码:
from cv2 import cv2
img = cv2.imread("1.png")
print("Высота:"+str(img.shape[0]))
print("Ширина:" + str(img.shape[1]))
print("Количество каналов:" + str(img.shape[2]))
for x in img.shape[0]:
for y in img.shape[1]:
if img[x, y] == (255, 255, 255):
img[x, y] = (0, 0, 0)
cv2.imwrite("result.png", img)
我有这个错误:
Traceback (most recent call last):
File "e:\Projects\Captcha Decrypt\main.py", line 9, in <module>
for x in img.shape[0]:
TypeError: 'int' object is not iterable
你能解决这个问题吗?
解决方案
该错误说明了一切:您正在尝试迭代一个数字,这是不可能的,您只能迭代已实现__iter__
or__next__
方法的对象。例如,如果img.shape[0]
是 100,并且您想迭代一百次,则应该使用 arange
代替。这基本上是一个数字列表,然后您可以对其进行迭代。试试这个:
from cv2 import cv2
img = cv2.imread("1.png")
print("Высота:" + str(img.shape[0]))
print("Ширина:" + str(img.shape[1]))
print("Количество каналов:" + str(img.shape[2]))
for x in range(img.shape[0]):
for y in range(img.shape[1]):
if img[x, y] == (255, 255, 255):
img[x, y] = (0, 0, 0)
cv2.imwrite("result.png", img)
推荐阅读
- java - 在TestNG中参数化@BeforeMethod方法
- firebase - Firebase 动态链接的 AppLink 配置
- c# - 在C#中检索firebase子根的所有项目
- python - 与特殊情况 Sqlalchamy 的一对一关系
- javascript - 数据表打印复杂标题打印预览
- python - python递归和运算符问题
- python-3.x - pyusb 读取操作总是返回 '1'
- sql-server - 如何在 varchar 列中存储字符串以及 Syllabication
- python - 即使正确安装也无法导入 pmdarima
- npm - 捆绑本地 NPM 依赖并发布