ここでは scikit-image.color で提供される rgb2gray 関数を使ってカラー画像をグレースケールに変換します.なお,rgb2gray の内部では Contemporary CRT phosphors (Rec 709) のアルゴリズムが使用されています.詳細なドキュメントやソースコードはここで確認できます.なお,あらかじめ「表示関数の定義」ページを参照し,ライブラリのインポートと関数の定義を実行しておいてください.
実際に rgb2gray 関数を利用しますが,元の画像が RGBA データの場合は予め RGB に変換しておく必要があることに注意してください.
ink_img = plt.imread('ink.png')
img = color.rgba2rgb(ink_img)
gray_img = color.rgb2gray(img)
show(gray_img)
徐々に拡大して表示します.
show_zoom_with_color(gray_img,
xlim=(50,100), ylim=(100, 50),
show_color=False
)
show_zoom_with_color(gray_img,
xlim=(40,70), ylim=(100, 70),
show_color=False
)
show_zoom_with_color(gray_img,
xlim=(50.5,59.5), ylim=(89.5, 80.5),
show_color=False,
figsize=(6,6)
)
色の情報も表示してみます.
show_zoom_with_color(gray_img,
xlim=(50.5,59.5), ylim=(89.5, 80.5),
figsize=(6,6),
# show_color=False,
fontsize=6
)
上の結果は Contemporary CRT phosphors (Rec 709) で示した結果(下図)と同じになるはずです.