画像ユーティリティ

このモジュールは画像に対する読み込み、書き込み、サイズ変更を行う関数を提供します。これらの関数のバックエンドはユーザー環境により自動的に変更されます。バックエンドの優先度は以下の通りです (上位ほど優先度高):

  • OpenCV (cv2)

  • scikit-image (skimage)

  • pillow (PIL) (インストールが必要)

このモジュールを使うには、これらのうち少なくとも 1 つのモジュールをインストールする必要があります。

nnabla.utils.image_utils.imread(path, grayscale=False, size=None, interpolate='bilinear', channel_first=False, as_uint16=False, num_channels=-1, **kwargs)[ソース]

path から画像を読み込みます。 size を指定した場合、出力配列がサイズ変更されます。デフォルトの出力形状は、RGB 画像では (高さ, 幅, チャネル)、グレースケール画像では (高さ, 幅) となります。

パラメータ:
  • path (String or File Object) -- 入力画像のパス。

  • grayscale (bool) -- True の場合、画像はグレースケールに再スケーリングされます。デフォルトは False です。

  • size (tuple of int) -- 出力形状。順番は (幅, 高さ)。 None の場合、画像はサイズ変更されません。デフォルトは None です。

  • interpolate (str) --

    補間法。この引数はバックエンドに依存します。この引数を指定したい場合、現在使用しているバックエンドに注意を払う必要があります。 以下を選択できます:

    • pil backend: ["nearest", "box", "bilinear", "hamming", "bicubic", "lanczos"].

    • cv2 backend: ["nearest", "bilinear", "bicubic", "lanczos"].

    両方のバックエンドのデフォルトは "bilinear" です。

  • channel_first (bool) -- True の場合、出力配列の形状は RGB 画像で (チャネル, 高さ, 幅) となります。デフォルトは False です。

  • as_uint16 (bool) -- True の場合、この関数は画像を np.uint16 として読み取ろうとします。デフォルトは False です。

  • num_channels (int) -- 出力配列のチャネルサイズ。デフォルトは -1 で、raw 画像形状を保持します。

  • return_palette_indices (bool) -- この引数は、pil バックエンドでのみ使うことができます。このフラグが True であり、PIL.Image のモードが "P" の場合、この関数はインデックスを含む 2 次元配列をパレットに返します。それ以外の場合は、(画像情報によって) “RGB” もしくは “RGBA” の 3 次元配列を返します。デフォルト値は False です。

戻り値:

as_uint16=True の場合、出力 dtype は np.uint16 となり、その他は np.uint8 (デフォルト) となります。

戻り値の型:

numpy.ndarray

nnabla.utils.image_utils.imsave(path, img, channel_first=False, as_uint16=False, auto_scale=True, **kwargs)[ソース]

path で指定されたファイルに img を保存します。デフォルトで、 img の形状は (高さ, 幅, チャネル) であることが必要です。

パラメータ:
  • path (str) -- 出力パス。

  • img (numpy.ndarray) -- 入力画像。すべてのピクセル値は正の値であり、uint8 では int の [0, 255]、uint16 では int の [0, 65535]、float では [0, 1] の範囲内にある必要があります。float 画像を渡すとき、 auto_scale を True に設定する必要があります (そうでなければ例外が発生します)。負の値を持つ画像が入力に渡された場合、例外が発生します。

  • channel_first (bool) -- True の場合、形状が (チャネル, 高さ, 幅) となる画像を入力することが出来ます。デフォルトは False です。

  • as_uint16 (bool) -- True の場合、保存する前に画像を uint16 にキャストします。デフォルトは False です。

  • auto_scale (bool) -- ピクセル値の範囲がスケールアップされているか否かを表します。スケールアップされたピクセル値の範囲は uint8 で [0, 255]、uint16 で [0, 65535] となる出力 dtype に依存します。

nnabla.utils.image_utils.imresize(img, size, interpolate='bilinear', channel_first=False, **kwargs)[ソース]

imgsize にサイズ変更します。デフォルトでは、入力画像の形状は (高さ, 幅, チャネル) である必要があります。

パラメータ:
  • img (numpy.ndarray) -- 入力画像。

  • size (tuple of int) -- 出力形状。順番は (幅, 高さ)。

  • interpolate (str) --

    補間法。この引数はバックエンドに依存します。この引数を指定したい場合、現在使用しているバックエンドに注意を払う必要があります。 以下を選択できます:

    • pil backend: ["nearest", "box", "bilinear", "hamming", "bicubic", "lanczos"].

    • cv2 backend: ["nearest", "bilinear", "bicubic", "lanczos"].

    両方のバックエンドのデフォルトは "bilinear" です。

  • channel_first (bool) -- True の場合、出力配列の形状は RGB 画像で (チャネル, 高さ, 幅) となります。デフォルトは False です。

戻り値:

numpy.ndarray