numpy.histogram
を使って画像のRGBヒストグラムをプロットしたいとします。私が何をしたいかイメージヒストグラムに範囲外の値を表示するにはどうすればよいですか?
import numpy as np
import matplotlib.pyplot as plt
im = plt.imread('Bulbasaur.jpeg')
draw_histogram(im, minimum=0., maximum=255.)
:
それは[0、255]の通常の範囲に適しています(私の機能以下draw_histogram
を参照してください)
私が使用している画像が範囲外の値を持つことが予想されます。時々、彼らは範囲外になることがあります。 RGBヒストグラムを使用して、値が範囲外であるかどうかを分析したいと思います。
たとえば、区間[-512,512]で値が最悪であると想定します。私はまだヒストグラムが正しいスポットで範囲内の強度を表示し、空白のない範囲のセクションを残すようにします。例えば、Bulbasaur.jpeg
のヒストグラムを再度描いても、範囲[-512,512]で同じヒストグラムを見ることができますが、「x」軸に沿って収縮します(下のヒストグラムの2つの破線の間)。
問題:
私はunregular範囲のヒストグラムを描画しようとすると、何かがうまくいかない:
import numpy as np
import matplotlib.pyplot as plt
im = plt.imread('Bulbasaur.jpeg')
draw_histogram(im, minimum=-512., maximum=512.)
draw_histogram()
のための私のコード:
def draw_histogram(im, minimum, maximum):
fig = plt.figure()
color = ('r','g','b')
for i, col in enumerate(color):
hist, bins = np.histogram(im[:, :, i], int(maximum-minimum), (minimum, maximum))
plt.plot(hist, color=col)
plt.xlim([int(minimum), int(maximum)])
# Draw vertical lines to easily locate the 'regular range'
plt.axvline(x=0, color='k', linestyle='dashed')
plt.axvline(x=255, color='k', linestyle='dashed')
plt.savefig('Histogram_Bulbasaur.png')
plt.close(fig)
return 0
質問
誰が正しくunregular範囲でRGBヒストグラムを描画する方法を知っていますか?
削除されたコメントは、問題が何であるかを認識しました。 –