Pythonanywhere:matplotlib.pyplot.imgopen 创建一个无法修改的 numpy.array
Pythonanywhere: matplotlib.pyplot.imgopen creates a numpy.array that cannot be modified
我在使用 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
我以各种方式探索了这个错误,但都无济于事。想法?
该 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
我在使用 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
我以各种方式探索了这个错误,但都无济于事。想法?
该 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