图像转换,numpy error“只有整数标量数组才能转换为标量索引”

2024-04-23 23:20:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把灰度图像转换成二进制表示(黑白表示)。我通过使用嵌套for循环来实现这一点,但是我得到了标题中提到的错误。有什么小窍门可以绕过这个错误吗。在

import numpy as np
import matplotlib.pyplot as plt

fname = 'nao_bw.jpg'
img = plt.imread('/Users/anil/Desktop/nao_bw.jpg')
imgplot = plt.imshow(img)
img_as_np = np.asarray(img)
for i in range(img_as_np):
    for j in range(img_as_np):
        if img_as_np[i,j]< 100 and img[i,j]>150:
            img_as_np[i,j] = 0
        else:
            img_as_np[i,j] = 255
plt.show()

Tags: in图像importimgforas错误np
1条回答
网友
1楼 · 发布于 2024-04-23 23:20:57

这不是numpy的错误,当您尝试执行range(img_as_np)时,就会出现错误。您试图从numpy数组创建一个range对象,这是没有意义的。就像你写了range(np.array([[1,2],[3,4]])),你想让range函数做什么?我猜你想要range(len(img_as_np)),你有一个正方形的图像。如果图像不是正方形,则应具有:

    for i in range(img_as_np.shape[0]):
        for j in range(img_as_np.shape[1]):
            ...

相关问题 更多 >