その他



ポインタオブジェクト拡張機能

PyFIE ポインタ型のインスタンスは、 下記インスタンスメソッドを使用することができます。

PTR.fnOAL_free()

自分自身のメモリ領域を fnOAL_free() で解放し NULL ポインタ化します。

このインスタンスメソッドは PyFIE 関数 fnOAL_free() に インスタンスを渡して呼び出すことの単なる略記法です。

なのでこのインスタンスメソッドは、 PyFIE 関数 fnOAL_malloc()fnOAL_calloc() で確保したもの、 および PyFIE 関数内部で確保され fnOAL_free() で解放することが要求されているもの以外では 使用しないでください。



FIE オブジェクト拡張機能

FHANDLE 型インスタンスとして扱われる PyFIE の FIE オブジェクト(以下単に FIE オブジェクト と記す)には、 扱いを容易にするためのインスタンスメソッドやプロパティがいくつか用意されています。


FIE オブジェクトのプロパティ

FIE オブジェクト のインスタンスでは、 下記のような読み出し専用のプロパティを使用することができます。

FHANDLE.objtag

インスタンスの FIE オブジェクトタグ

FHANDLE.is_image

インスタンスが 画像オブジェクト の場合は True に、 それ以外のオブジェクトの場合は False となります。


FIE オブジェクトのインスタンスメソッド

FIE オブジェクト のインスタンスでは、 下記のようなインスタンスメソッドを使用することができます。

FHANDLE.clone()

FIE オブジェクト の複製を行います。

FIE オブジェクト が 画像オブジェクト である場合、 fnFIE_img_root_alloc()fnFIE_img_copy() を用いて複製が行われます。

それ以外の FIE オブジェクト では、 fnFIE_copy_object() により複製が行われます。

戻り値:

複製された FIE オブジェクト (FHANDLE) を返します。



画像オブジェクト拡張機能

FHANDLE 型インスタンスとして扱われる PyFIE の画像オブジェクト(以下単に 画像オブジェクト と記す)には、 扱いを容易にするためのインスタンスメソッドやプロパティがいくつか用意されています。


画像オブジェクトのプロパティ

画像オブジェクト のインスタンスでは、下記のような読み出し専用のプロパティを使用することができます。 画像オブジェクト 以外の FHANDLE 型インスタンスでこれらのプロパティを使用した場合は例外が発生します。

FHANDLE.f_type

インスタンス の画像型

FHANDLE.ch

インスタンス のチャネル数

FHANDLE.width

インスタンス の画像幅

FHANDLE.height

インスタンス の画像高さ

FHANDLE.step

インスタンス のステップ数


画像オブジェクトのインスタンスメソッド

画像オブジェクト のインスタンスでは、下記のようなインスタンスメソッドを使用することができます。 画像オブジェクト 以外の FHANDLE 型インスタンスでこれらのメソッドを使用した場合は例外が発生します。

FHANDLE.roi(x, y, w=10, h=10, ch=None)

インスタンス の指定領域に対するチャイルド画像を生成します。 (チャイルド画像については FIE ライブラリのリファレンスマニュアルを参照してください)

パラメータ x 及び y で領域の左上座標を、 パラメータ w 及び h で領域のサイズを指定してください。

パラメータ ch にチャネル番号を指定すると、 単一チャネルのチャイルド画像が生成されます。

パラメータ:
  • x -- 領域の左上 x 座標を指定します。

  • y -- 領域の左上 y 座標を指定します。

  • w -- 領域の幅を指定します。

  • h -- 領域の高さを指定します。

  • ch -- チャネル番号を指定します。

戻り値:

生成された 画像オブジェクト (チャイルド画像)を返します。

FHANDLE.single_ch(ch)

インスタンス の指定チャネルに対するチャイルド画像を生成します。 (チャイルド画像については FIE ライブラリのリファレンスマニュアルを参照してください)

生成されるチャネル画像は( インスタンス と)同じ画像サイズの単一チャネル画像となります。

パラメータ:

ch -- チャネル番号を指定します。

戻り値:

生成された 画像オブジェクト (チャイルド画像)を返します。

FHANDLE.empty_like(img_type=None, w=None, h=None, ch=None)

インスタンス と同サイズの 画像オブジェクト (ルート画像)を新たに確保し返します。 (ルート画像については FIE ライブラリのリファレンスマニュアルを参照してください)

返される 画像オブジェクト は確保直後の状態であり、 したがってその画素値は不定な状態です。

確保する 画像オブジェクト の画像型・幅・高さ・チャネル数をそれぞれパラメータ img_type, w, h, ch で指定することができます。 指定しなかった場合には インスタンス と同じ画像型・幅・高さ・チャネル数となります。

インスタンス が NULL チャイルド画像であった場合には、 新たな NULL チャイルド画像を確保し返します。 (NULL チャイルド画像については FIE ライブラリのリファレンスマニュアルを参照してください)

パラメータ:
  • img_type -- 画像型を指定します。

  • w -- 画像幅を指定します。

  • h -- 画像高さを指定します。

  • ch -- 画像チャネル数を指定します。

戻り値:

生成された 画像オブジェクト を返します。

FHANDLE.full_like(fill_value, img_type=None, w=None, h=None, ch=None)

インスタンス と同サイズの 画像オブジェクト (ルート画像)を新たに確保し返します。

返される 画像オブジェクト のすべての画素値はパラメータ fill_value の値で初期化されます。

パラメータ img_type, w, h, ch の意味は FHANDLE.empty_like と等価です。

パラメータ:
  • fill_value -- 塗りつぶす濃度値を指定します。

  • img_type -- 画像型を指定します。

  • w -- 画像幅を指定します。

  • h -- 画像高さを指定します。

  • ch -- 画像チャネル数を指定します。

戻り値:

生成された 画像オブジェクト を返します。


IPython における画像オブジェクトの可視化

画像オブジェクト のインスタンスは、下記の条件を満たす場合に IPython.display.display() 関数による画像の可視化が可能です。

  • 画像型とチャネル数の組み合わせが以下のいずれかである。

    • 画像型が F_IMG_RGBTRIPLE でも F_IMG_RGBQUAD でもなく、チャネル数が1または3。

    • 画像型が F_IMG_RGBTRIPLE または F_IMG_RGBQUAD であり、チャネル数が1。

  • 画像の幅および高さが、 pyfie.ctrl.set_ipython_max_display_image_size() で設定される値より小さい。

条件を満たさない場合は、インスタンスの文字列表現(__repr__())が表示されます。

バージョン 3.8.0.5 で追加: それ以前のバージョンでは常にインスタンスの文字列表現が表示されていました。以前と同じ挙動とするには __repr__() を使用してください。



ユーティリティ関数

PyFIE モジュールのトップレベル名前空間には、 以下のユーティリティ関数が含まれています。


画像オブジェクト確保

pyfie.img_bin(w=32, h=32, ch=1)

F_IMG_BIN 型の 画像オブジェクト の確保を行います。 画像の確保は fnFIE_img_root_alloc() により行われます。

パラメータ:
  • w -- 画像幅を指定します。

  • h -- 画像高さを指定します。

  • ch -- 画像チャネル数を指定します。

戻り値:

確保された F_IMG_BIN 型の 画像オブジェクト を返します。

pyfie.img_uc8(w=32, h=32, ch=1)

F_IMG_UC8 型の 画像オブジェクト の確保を行います。 画像の確保は fnFIE_img_root_alloc() により行われます。

パラメータ:
  • w -- 画像幅を指定します。

  • h -- 画像高さを指定します。

  • ch -- 画像チャネル数を指定します。

戻り値:

確保された F_IMG_UC8 型の 画像オブジェクト を返します。

pyfie.img_s16(w=32, h=32, ch=1)

F_IMG_S16 型の 画像オブジェクト の確保を行います。 画像の確保は fnFIE_img_root_alloc() により行われます。

パラメータ:
  • w -- 画像幅を指定します。

  • h -- 画像高さを指定します。

  • ch -- 画像チャネル数を指定します。

戻り値:

確保された F_IMG_S16 型の 画像オブジェクト を返します。

pyfie.img_us16(w=32, h=32, ch=1)

F_IMG_US16 型の 画像オブジェクト の確保を行います。 画像の確保は fnFIE_img_root_alloc() により行われます。

パラメータ:
  • w -- 画像幅を指定します。

  • h -- 画像高さを指定します。

  • ch -- 画像チャネル数を指定します。

戻り値:

確保された F_IMG_US16 型の 画像オブジェクト を返します。

pyfie.img_dbl(w=32, h=32, ch=1)

F_IMG_DOUBLE 型の 画像オブジェクト の確保を行います。 画像の確保は fnFIE_img_root_alloc() により行われます。

パラメータ:
  • w -- 画像幅を指定します。

  • h -- 画像高さを指定します。

  • ch -- 画像チャネル数を指定します。

戻り値:

確保された F_IMG_DOUBLE 型の 画像オブジェクト を返します。

pyfie.img_rgbq(w=32, h=32, ch=1)

F_IMG_RGBQUAD 型の 画像オブジェクト の確保を行います。 画像の確保は fnFIE_img_root_alloc() により行われます。

パラメータ:
  • w -- 画像幅を指定します。

  • h -- 画像高さを指定します。

  • ch -- 画像チャネル数を指定します。

戻り値:

確保された F_IMG_RGBQUAD 型の 画像オブジェクト を返します。


画像の読み込みと書き込み

pyfie.imread(file_name, layered=False)

ファイルから画像の読み込みを行います。

パラメータ file_name には読み込む画像の ファイルパス または URL を指定可能です。

パラメータ layered は、 カラー画像を複数チャネルとして扱うか否かの指定となります。 True を指定した場合は、 F_IMG_UC8 型の 3 チャネル画像として読み込みを行います。 False を指定した場合は、 F_IMG_RGBQUAD 型の画像として読み込みを行います。

パラメータ:
  • file_name -- 読み込む画像ファイル名(str オブジェクトや pathlib.PurePath オブジェクトとして表されるファイルパス、または URL)

  • layered -- カラー画像を複数チャネルとして扱うか否かの指定

戻り値:

画像が読み込まれた 画像オブジェクト を返します。

pyfie.imwrite(file_name, img, comp_level=-1, quality=95)

パラメータ img に渡された 画像オブジェクト を、 ファイルに書き込みます。

ファイルへの書き込みは、拡張子に応じて fnFIE_save_bmp(), fnFIE_save_jpeg(), fnFIE_save_png(), または fnFIE_save_tiff() により行われます。

パラメータ comp_level は圧縮レベルを表します。 PNG または TIFF 形式での保存時のみ有効です。 TIFF 形式で圧縮レベルが 0 の場合は圧縮形式は F_TIFF_COMPRESSION_NONE となり、 0 でない場合は F_TIFF_COMPRESSION_DEFLATE になります。 圧縮レベルについて詳細は対応する画像保存関数のリファレンスを参照ください。

パラメータ quality は画質を表します。 JPEG 形式での保存時のみ有効であり、0以上100以下で指定します。

パラメータ:
  • file_name -- 書き込む画像ファイル名(str オブジェクトまたは pathlib.PurePath オブジェクト)

  • img -- 画像オブジェクト

  • comp_level -- 圧縮レベル。PNG または TIFF 形式のみ有効

  • quality -- 画質。JPEG 形式のみ有効

pyfie.imdecode(buffer, layered=False)

パラメータ buffer に渡されたバイト列を 画像オブジェクト に変換します。

パラメータ layered の意味は pyfie.imread() と等価です。

パラメータ:
  • buffer -- 特定のフォーマットで表現された画像を表すバイト列 (bytes)

  • layered -- カラー画像を複数チャネルとして扱うか否かの指定

戻り値:

画像が読み込まれた 画像オブジェクト を返します。

注釈

本関数は内部で pyfie.imread() を使用しており、 処理時間はそれよりも長くなる(ファイルを経由しないで済むことによる高速化が実施されていない)ことにご注意ください。

pyfie.imencode(img, format_ext='bmp', comp_level=-1, quality=95)

指定されたフォーマットでパラメータ img に渡された画像オブジェクトをバイト列に変換します。

パラメータ comp_levelquality の意味は pyfie.imwrite() と等価です。

パラメータ:
  • img -- 画像オブジェクト

  • format_ext -- フォーマットを表す文字列。"bmp", "png", "jpg", "jpeg", "tif", "tiff"のいずれか

  • comp_level -- 圧縮レベル。PNG または TIFF 形式のみ有効

  • quality -- 画質。JPEG 形式のみ有効

戻り値:

特定のフォーマットに変換された画像を表すバイト列 (bytes) を返します。

注釈

本関数は内部で pyfie.imwrite() を使用しており、 処理時間はそれよりも長くなる(ファイルを経由しないで済むことによる高速化が実施されていない)ことにご注意ください。