ここでは二つの問題があるかもしれません:あなたの色チャンネル(赤、緑、青)が混在しているように見えます
:
1号。それはなぜ色がとても奇妙なのかを説明します。その場合は、以下に示すように配列内のカラーチャンネルを交換する必要があります。
# swapped color channels (R, B, G) rgb_image = rgb_image[:, :, [0, 2, 1]] plt.figure() plt.imshow(rgb_image) plt.axis('off')
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.cbook import get_sample_data
rgb_image = plt.imread(get_sample_data("grace_hopper.png", asfileobj=False))
# correct color channels (R, G, B)
plt.figure()
plt.imshow(rgb_image)
plt.axis('off')
問題2:
matplotlibののplt.imshow
がNone
デフォルト指定されていない場合は、キーワード引数interpolation
を持っています。 Matplotlibはローカルのスタイルシートを参照して、デフォルトの補間動作を決定します。スタイルシートによっては、補間が適用される可能性があり、画像の歪みが生じることがあります。 documentation for imshow for more detailsを参照してください。
Matplotlibが画像を補間しないようにするには、interpolation="none"
をplt.imshow
に指定する必要があります。これは、デフォルトのNoneType値がNone
の場合、文字列値が"none"
とは異なるため、混乱します。 matplotlibの2.0で
red = np.zeros((100, 100, 3), dtype=np.uint8)
red[:, :, 0] = 255
red[40:60, 40:60, :] = 255
# with interpolation
plt.figure()
plt.imshow(red, interpolation='bicubic')
plt.axis('off')
# without interpolation
plt.figure()
plt.imshow(red, interpolation='none')
plt.axis('off')
デフォルトの補間は ' 'image.interpolation' に変更されました:「nearest''を –