1. ホーム
  2. Python

Python Numpy.ndarray ValueError: 代入先が読み取り専用です。

2022-02-20 06:44:45

ndarrayを使ったスライスの学習中のケーススタディ

# Extensions, for the slicing operation above
# data in jpg format 0-255 png 0-1
cat = plt.imread('. /timg.jpg')
plt.imshow(cat[400:600, 200:500])
plt.show

次のように撮影してください。

他の画像の一部を取り込みます。

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

<イグ

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

これは、エラーを報告します。

理由は、画像が読み取り専用になっているからで、この場合、PythonのOpenCVの画像フォーマットはNumpy.ndarrayで、ndarrayのプロパティを変更すればよいのです。

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

<イグ

を解決します。