Pythonanywhere: matplotlib.pyplot.imgopen создает массив numpy., Который нельзя изменить - PullRequest
1 голос
/ 22 марта 2020

У меня проблема с редактированием пикселей изображения с помощью matplotlib.

Python 3.7.5 (default, Nov 14 2019, 22:26:37) 
>>> import matplotlib.pyplot as plt
>>> img = plt.imread('allo.JPG')
>>> img[0][0]
array([255, 255, 255], dtype=uint8)
>>> img[0][0][1]
255
>>> img[0][0][1]=40
Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
ValueError: assignment destination is read-only

Я исследовал эту ошибку различными способами, но безрезультатно. Идеи? * * 1004

1 Ответ

3 голосов
/ 22 марта 2020

Для этого массива img для флага записи установлено значение False.

Вы можете сделать копию, и для этого флага будет установлено значение True:

>>> img.flags
  C_CONTIGUOUS : True
  F_CONTIGUOUS : False
  OWNDATA : False
  WRITEABLE : False
  ALIGNED : True
  WRITEBACKIFCOPY : False
  UPDATEIFCOPY : False

>>> img1 = img.copy()
>>> img1.flags
  C_CONTIGUOUS : True
  F_CONTIGUOUS : False
  OWNDATA : True
  WRITEABLE : True
  ALIGNED : True
  WRITEBACKIFCOPY : False
  UPDATEIFCOPY : False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...