Python Numpy.ndarray ValueError:assignment destination is read-only

在学习使用ndarray做切片操作的时候的一个案例

# 扩展,针对于上面的切片操作扩展
# jpg 格式的数据0-255  png 0-1
cat = plt.imread('./timg.jpg')
plt.imshow(cat[400:600, 200:500])
plt.show

取出一张图片如下:

Python Numpy.ndarray ValueError:assignment destination is read-only_第1张图片

取出另一张图片的一部分:

fish = plt.imread('./fish.jpg')
plt.imshow(fish[50:250,:])
plt.show

Python Numpy.ndarray ValueError:assignment destination is read-only_第2张图片

 

fish_e = fish[50:250,:]
cat[400:600, 200:500] = fish_e
plt.imshow(cat)
plt.show()

此时会报错:

Python Numpy.ndarray ValueError:assignment destination is read-only_第3张图片

原因是图像是只读模式,这个时候,在Python中OpenCV图像格式为Numpy.ndarray,可以修改ndarray属性:

fish_e = fish[50:250,:]
fish_e.flags.writeable = True
cat.flags.writeable = True
cat[400:600, 200:500] = fish_e
plt.imshow(cat)
plt.show()

 Python Numpy.ndarray ValueError:assignment destination is read-only_第4张图片

这样就解决了

你可能感兴趣的:(Python,Numpy)