numpyのndarrayデータ構造と画像を表示するためのmatplotlibを使って画像操作に関する非常に基本的なことをテストしています。私は、私のピクセルを格納するnp.zeros((n、m))関数を持つ2次元配列を作成しました。私は単にグレースケールで作業していますので、私のピクセルを表現するのに1つの値が必要です。これは私のコードスニペットです:numpyとmatplotlibを使った基本的な画像処理
import numpy as np
import matplotlib.pyplot as plt
matrix= np.zeros((4,4))
print(matrix)
plt.matshow(matrix, cmap=plt.cm.gray) #plot matrix
matrix+=128 #increase each pixel value by 128
print(matrix) #print the content of matrix
plt.matshow(matrix, cmap=plt.cm.gray) #plot matrix
私はこのコードから何を期待すると、各「ピクセル」は値0を持ち、何の問題がここにありませんので、最初のプロットは真っ黒になるということです。次に、ピクセルを0から128に増加させるので、2番目のプロットは完全に灰色になりますが、まだ黒です。動作は実行されていないが、マトリックスは効果的に変更されている(印刷機能からチェックされている)。
だから私は、「手動」だけでいくつかのピクセルを修正しようとしました:
matrix[0,0]=255
matrix[0,3]=255
matrix[3,0]=255
matrix[3,3]=255
plt.matshow(matrix, cmap=plt.cm.gray) #plot matrix
、今4個のピクセルが白です。 私は完全に欠けていると思う側面がいくつかあります。それはndarrayについての気が散っていて、いくつかのものに関係していると思います。
なぜこのようなことが起こるのか説明できる人は誰ですか?ありがとう