前回は、グレースケール画像の表示でちょっと躓きました。
今回はカラー画像を表示します。
1. scikit-imageとmatplotlibでカラー画像の表示
こちらの画像をscikit-imageとmatplotlibで表示してみます。
前回同様にimread関数で画像ファイルを読み込んで、matplotlibのimshow関数で表示してみます。今回はノーマルなカラー画像なので、RGB形式でnumpy配列に格納され、問題なく表示されました。
あっさり表示されたのでnumpyの復習を兼ねて、numpyで画像データを変更してみます。
2. numpyで画像切り出し・縦横回転・透過してみる
切り出し :
ndarrayの範囲指定を使う。
縦横回転 :
行列の転置。
transposeで軸を入れ替えることで回転可能。
回転方向によってプラスαの操作が必要ですが。
透過 :
RGBに対し、透過度を示すαチャネルを追加して画像を透過させてみる。
それぞれ、結果は下記Jupyter Notebookの結果を確認して下さい。
3. 自動正規化に注意
過程で一つ問題にぶち当たりました。透過度を示すαチャネルを0~255の幅のグレースケールで表示しようと思ったのですが、単なる白黒データになってしまいます。
Xarray-like or PIL image The image data. Supported array shapes are: (M, N): an image with scalar data. The values are mapped to colors using normalization and a colormap. See parameters norm, cmap, vmin, vmax. (M, N, 3): an image with RGB values (0-1 float or 0-255 int). (M, N, 4): an image with RGBA values (0-1 float or 0-255 int), i.e. including transparency. The first two dimensions (M, N) define the rows and columns of the image. Out-of-range RGB(A) values are clipped. vmin, vmaxscalar, optional When using scalar data and no explicit norm, vmin and vmax define the data range that the colormap covers. By default, the colormap covers the complete value range of the supplied data. vmin, vmax are ignored if the norm parameter is used.
どうやら、自動で正規化されてしまい、2値化されてしまったようです。
スカラーデータの表示は少し注意が必要そうです。
Numpyの使い方に関するお勧め書籍ですが、『Pythonによるデータ分析入門』と『現場で使える!NumPyデータ処理入門』がお勧めです。
前者はNumpyに閉じず、Pandasも使ったデータ分析全般について勉強になります。後者はNumpyのハンドブック的に使うのにお勧めです。
次回は機械学習に関する学習について少し紹介したいと思います。