Я хочу сделать изображение в градациях серого, но получаю такие ошибки, я уже искал в Google, но не получил ответа, и я не знаю, какие ключевые слова я должен использовать для поиска в Google.
Мой код:
!pip install matplotlib
import numpy as np
import matplotlib.pyplot as plt
img = plt.imread('/content/drive/MyDrive/Colab Notebooks/gambar.jpg')
img = np.zeros([120, 300, 3], dtype=np.uint8)
h, w = img[:2]
for x in range(w):
for y in range(h):
gray = (20 + 125 + 255) / 3
img[y,x] = gray
plt.imshow(img)
plt.show()
Вывод ошибок:
TypeError Traceback (most recent call last)
<ipython-input-43-e6c1f87f1234> in <module>()
8 h, w = img[:2]
9
---> 10 for x in range(w):
11 for y in range(h):
12 gray = (20 + 125 + 255) / 3
TypeError: only integer scalar arrays can be converted to a scalar index
Пожалуйста, уточните вашу конкретную проблему или предоставьте дополнительную информацию, чтобы выделить именно то, что вам нужно. Как сейчас написано, трудно точно сказать, о чем вы спрашиваете.
Проверьте ответ здесь. Принятый ответ показывает, что это делается как с Pillow, так и с numpy/matplotlib.
Если конечная цель состоит в том, чтобы просто сохранить изображение в виде версии в градациях серого, Pillow сделает эту работу. Если цель состоит в том, чтобы отправить версию в оттенках серого в какую-то другую часть скрипта, где требуется numpy/matplotlib, вы можете либо использовать вторую часть ответа по приведенной выше ссылке, либо преобразовать объект Pillow в массив numpy, как показано здесь.
Ни один из ваших кодов не имеет никакого смысла. Прочитайте учебник, пожалуйста. Как спросить