2017-04-01 6 views
0

私は画像をグレイスケールに変換しようとしていましたが、これはPythonでopencvを使ってイメージを変換しようとしましたが、画像をある種の熱カメラ画像に変換します。私は間違って何をしていますか?この画像はCIFAR10データセットから取得されOpencvでグレースケールが正しく動作しない

img =X_tr[9999] 
plt.imshow(img) 
plt.show() 
img = cv2.cvtColor(img.astype(np.uint8), cv2.COLOR_RGB2GRAY) 
plt.imshow(img) 
plt.show() 
img.shape 

: ここで下の画像のためのコードです。おかげさまで Code and result after using opencv

+0

実際には既に同様の質問がありました(ただし、opencvは使用していません)。私はまだ正規化についてのポイントが他のスレッドから明らかにならないので、ここで私の答えを残します – ImportanceOfBeingErnest

答えて

3

グレースケール画像、つまり1つのカラーチャンネルのみの画像は、カラーマップを使用してプロットされるようにimshowと解釈されます。したがって、使用するカラーマップ(および重要な場合は正規化)を指定する必要があります。

plt.imshow(img, cmap="gray", vmin=0, vmax=255) 
+1

私はとても愚かです。ありがとう。 –

関連する問題