フィルタ全般
[画像フィルタ]


関数

INT FVALGAPI fnFGA_average (FHANDLE hsrc, FHANDLE hdst, INT border_mode, DOUBLE value)
 average filter.
INT FVALGAPI fnFGA_averageMxN (FHANDLE hsrc, FHANDLE hdst, INT size_m, INT size_n, INT border_mode, DOUBLE value)
 平均化フィルタ(M×N)
INT FVALGAPI fnFGA_bilateral (FHANDLE hSrc, FHANDLE hDst, DOUBLE sigma_s, DOUBLE sigma_r, INT border_mode, DOUBLE border_val)
 バイラテラル フィルタ
INT FVALGAPI fnFGA_gabor (FHANDLE hSrc, FHANDLE hDst, DOUBLE sigma, DOUBLE wavelen, DOUBLE orient, INT filter_mode, INT border_mode, DOUBLE border_val)
 ガボール フィルタ.
INT FVALGAPI fnFGA_gaussian_1Dfilter_conv (FHANDLE fhSrc, FHANDLE fhDst, DOUBLE dSigma, INT iNDerivative, BOOL bIsVertical)
 gaussian1D フィルタ (convolution(FIR) 版).
INT FVALGAPI fnFGA_kernel_filter (FHANDLE hsrc, FHANDLE hdst, F_FILTER_KERNEL_T *kernel, INT border_mode, DOUBLE border_value)
 任意カーネルフィルタ
INT FVALGAPI fnFGA_laplacian (FHANDLE fhSrc, FHANDLE fhDst, INT iCase, INT border_mode, DOUBLE value)
 laplacian フィルタ.
INT FVALGAPI fnFGA_sharp (FHANDLE hsrc, FHANDLE hdst, INT border_mode, DOUBLE border_value)
 鮮鋭化フィルタ.
INT FVALGAPI fnFGA_medianMxN (FHANDLE hSrc, FHANDLE hTar, INT iH, INT iV, INT iBrdMod)
 median filter with variable filtering window
INT FVALGAPI fnFGA_median (FHANDLE hsrc, FHANDLE hdst, INT border_mode, DOUBLE value)
 median filter
INT FVALGAPI fnFGA_minMxN (FHANDLE hsrc, FHANDLE hdst, INT size_m, INT size_n, INT border_mode, DOUBLE border_val)
 最小値フィルタ (MxN)
INT FVALGAPI fnFGA_maxMxN (FHANDLE hsrc, FHANDLE hdst, INT size_m, INT size_n, INT border_mode, DOUBLE border_val)
 最大値フィルタ (MxN)
INT FVALGAPI fnFGA_sobel (FHANDLE hsrc, FHANDLE hdst, INT calc_mode, INT border_mode, DOUBLE border_value)
 sobel フィルタ.
INT FVALGAPI fnFGA_sobel_dir (FHANDLE hsrc, FHANDLE hdst, INT border_mode, DOUBLE border_value)
 sobel フィルタ.
INT FVALGAPI fnFGA_prewitt (FHANDLE hsrc, FHANDLE hdst, enum f_filter_mode calc_mode, INT border_mode, DOUBLE border_value)
 prewitt フィルタ.
INT FVALGAPI fnFGA_solodel (const FHANDLE hSrc, FHANDLE hDst, INT color)
 孤立点除去.

関数

INT FVALGAPI fnFGA_average ( FHANDLE  hsrc,
FHANDLE  hdst,
INT  border_mode,
DOUBLE  value 
)

average filter.

average filter を施す。
次のようなマトリックスによる 3 x 3 の線形フィルタを施します。

	[1][1][1]
	[1][1][1]
	[1][1][1]

	div : 9
	
割り切れない場合は小数点以下切捨てます(DOUBLEを除く)。 なお、フィルタのアンカー位置は、フィルタの中心となります。

本関数に対応する FIE ライブラリ関数は fnFIE_average() となります。
ここに記載されていない詳細な仕様に関しては 「FIE ライブラリ説明書」 を参照して下さい。

引数:
[in] hsrc 処理対象画像(FGA 画像オブジェクト / type: uc8, s16, us16, double)
[out] hdst 処理結果画像(FGA 画像オブジェクト / type: uc8, s16, us16, double)
[in] border_mode ボーダー処理モード
  • F_BORDER_NONE ボーダー拡張しない
  • F_BORDER_ZERO 0埋めモード
  • F_BORDER_VALUE 一定値モード
  • F_BORDER_CONTINUOUS 端延長モード
  • F_BORDER_REPEAT 繰り返しモード
  • F_BORDER_MIRROR1 反転モード1
  • F_BORDER_MIRROR2 反転モード2
[in] value ボーダー濃度値。
border_mode がF_BORDER_VALUEの場合のみ使用されます。 その他のモードの場合は、この値は無視されます。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 画像オブジェクトの値エラー
F_ERR_NOMEMORY メモリ不足エラー
F_ERR_INVALID_PARAM パラメータ異常( border_mode 異常 )
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
本関数は非同期関数です。非同期関数の詳細については 「非同期関数」のページを参照して下さい。

INT FVALGAPI fnFGA_averageMxN ( FHANDLE  hsrc,
FHANDLE  hdst,
INT  size_m,
INT  size_n,
INT  border_mode,
DOUBLE  value 
)

平均化フィルタ(M×N)

任意のフィルタサイズ(M×N)において平均化フィルタを施します。 なお、フィルタのアンカー位置は、フィルタの中心となります。

フィルタサイズは下記の条件を満たしている必要があります。

  • フィルタの幅と高さが共に1以上の奇数である.
  • フィルタのサイズは画像サイズ以下である.

入力画像と出力画像は下記の条件を満たしている必要があります。

  • 入力画像と出力画像の幅と高さは同じである.
  • 入力画像と出力画像のチャネル数は同じである.
  • 出力画像の画像型は入力画像の画像型と同じであるか、 F_IMG_DOUBLE 型である.

本関数に対応する FIE ライブラリ関数は fnFIE_averageMxN() となります。
ここに記載されていない詳細な仕様に関しては 「FIE ライブラリ説明書」 を参照して下さい。

引数:
[in] hsrc 入力画像 ( FGA 画像オブジェクト / type: uc8, s16, us16, double )
[out] hdst 出力画像 ( FGA 画像オブジェクト / 入力画像の型と同じ 又はdouble型 )
[in] size_m フィルタの幅 ( 1 以上 画像幅 以下 の奇数)
[in] size_n フィルタの高さ ( 1 以上 画像高さ以下 の奇数)
[in] border_mode ボーダー処理モード. 下記のいずれかを指定.
  • F_BORDER_NONE ボーダー部分は処理しない
  • F_BORDER_ZERO 0埋めモード
  • F_BORDER_VALUE 一定値モード
  • F_BORDER_CONTINUOUS 端延長モード
  • F_BORDER_REPEAT 繰り返しモード
  • F_BORDER_MIRROR1 反転モード1
  • F_BORDER_MIRROR2 反転モード2
[in] value ボーダー濃度値.
border_mode が F_BORDER_VALUE の場合のみ使用されます. その他のモードの場合、この値は無視されます.
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像オブジェクトが渡された
F_ERR_INVALID_PARAM パラメータ異常
F_ERR_NOMEMORY メモリ不足エラー
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
本関数は非同期関数です。非同期関数の詳細については 「非同期関数」のページを参照して下さい。

INT FVALGAPI fnFGA_bilateral ( FHANDLE  hSrc,
FHANDLE  hDst,
DOUBLE  sigma_s,
DOUBLE  sigma_r,
INT  border_mode,
DOUBLE  border_val 
)

バイラテラル フィルタ

バイラテラル フィルタでは、2次元 ガウス フィルタのように近傍画素を空間方向のガウス関数で重み付けしながら平滑化を行いますが、 その際注目画素との濃度差に応じて重みを増減させます。
濃度差に応じた重み付けは濃度方向のガウス関数により行われ、濃度差が大きいほど重みが低くなります。 これにより輪郭(エッジ)を保ったまま画像の平滑化効果を得ることが出来ます。

入力画像と出力画像の 画像型、幅、高さ、チャネル数 は同じでなければなりません。

本関数に対応する FIE ライブラリ関数は fnFIE_bilateral() となります。
ここに記載されていない詳細な仕様に関しては 「FIE ライブラリ説明書」 を参照して下さい。

引数:
[in] hSrc 入力画像 ( FGA 画像オブジェクト / type: uc8, s16, us16, double )
[out] hDst 出力画像 ( FGA 画像オブジェクト / type: uc8, s16, us16, double )
[in] sigma_s 空間方向の標準偏差 $\sigma_{S}$ (単位 : pixel, 0.4 <= sigma_s)
[in] sigma_r 濃度方向の標準偏差 $\sigma_{R}$ (単位 : 濃度, 0 < sigma_r)
[in] border_mode ボーダー処理モード. 下記のいずれかを指定.
  • F_BORDER_NONE ボーダー部分は処理しない
  • F_BORDER_ZERO 0埋めモード
  • F_BORDER_VALUE 一定値モード
  • F_BORDER_CONTINUOUS 端延長モード
  • F_BORDER_REPEAT 繰り返しモード
  • F_BORDER_MIRROR1 反転モード1
  • F_BORDER_MIRROR2 反転モード2
[in] border_val ボーダー濃度値.
border_mode が F_BORDER_VALUE の場合のみ使用されます. その他のモードの場合、この値は無視されます.
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像オブジェクトが渡された
F_ERR_INVALID_PARAM パラメータ異常
F_ERR_NOMEMORY メモリ不足エラー
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
本関数は非同期関数です。非同期関数の詳細については 「非同期関数」のページを参照して下さい。

INT FVALGAPI fnFGA_gabor ( FHANDLE  hSrc,
FHANDLE  hDst,
DOUBLE  sigma,
DOUBLE  wavelen,
DOUBLE  orient,
INT  filter_mode,
INT  border_mode,
DOUBLE  border_val 
)

ガボール フィルタ.

ガウス関数 と 正弦・余弦関数 の積として定義された以下のようなフィルタカーネルを入力画像に畳み込み演算して出力します。

\begin{eqnarray*}{ g_{\sigma, \lambda, \theta}(x,y) &=& W_{\sigma}(x,y) \cdot c_{\lambda,\theta}(x,y)\\ &=& \frac{1}{2\pi\sigma^2}exp\left(-\frac{x^2+y^2}{2\sigma^2}\right) \cdot exp\left(i\frac{2\pi}{\lambda}(x cos\theta + y sin \theta)\right)\\ \end{eqnarray*}{

ここで $\sigma$ は ガウス関数 の標準偏差、$\lambda$ は 正弦・余弦関数の波長、そして $\theta$ は フィルタカーネルの方位となります。

このフィルタカーネルは 任意の周波数成分を抽出する機能をもちます。

入力画像と出力画像の 幅、高さ、チャネル数 は同じでなければなりません。
入力画像と出力画像の 画像型 は同じでなければなりません。
但し、入力画像が F_IMG_UC8、F_IMG_S16、F_IMG_US16 の場合に限り 出力画像として F_IMG_FLOAT を指定することが出来ます。

本関数に対応する FIE ライブラリ関数は fnFIE_gabor() となります。
ここに記載されていない詳細な仕様に関しては 「FIE ライブラリ説明書」 を参照して下さい。

引数:
[in] hSrc 入力画像 ( FGA 画像オブジェクト / type: uc8, s16, us16, float, double )
[out] hDst 出力画像 ( FGA 画像オブジェクト / type: uc8, s16, us16, float, double )
[in] sigma ガボールフィルタの標準偏差 $\sigma$ (単位 : pixel, 0.4 <= sigma)
[in] wavelen ガボールフィルタの波長 $\lambda$ (単位 : pixel, 0 < wavelen)
[in] orient ガボールフィルタの方位 $\theta$ (単位 : radian )
[in] filter_mode フィルターモード. 下記のいずれかを指定.
  • 0 : 実部 を出力.
  • 1 : 虚部 を出力.
  • 2 : 実部 と 虚部 の 自乗和の平方根 を出力.
[in] border_mode ボーダー処理モード. 下記のいずれかを指定.
  • F_BORDER_NONE ボーダー部分は処理しない
  • F_BORDER_ZERO 0埋めモード
  • F_BORDER_VALUE 一定値モード
  • F_BORDER_CONTINUOUS 端延長モード
  • F_BORDER_REPEAT 繰り返しモード
  • F_BORDER_MIRROR1 反転モード1
  • F_BORDER_MIRROR2 反転モード2
[in] border_val ボーダー濃度値.
border_mode が F_BORDER_VALUE の場合のみ使用されます. その他のモードの場合、この値は無視されます.
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像オブジェクトが渡された
F_ERR_INVALID_PARAM パラメータ異常
F_ERR_NOMEMORY メモリ不足エラー
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
本関数は非同期関数です。非同期関数の詳細については 「非同期関数」のページを参照して下さい。

INT FVALGAPI fnFGA_gaussian_1Dfilter_conv ( FHANDLE  fhSrc,
FHANDLE  fhDst,
DOUBLE  dSigma,
INT  iNDerivative,
BOOL  bIsVertical 
)

gaussian1D フィルタ (convolution(FIR) 版).

X方向、またはY方向に gaussian フィルタ を施します。 convolution のカーネル関数がガウス関数であるようなフィルタです。
入力画像と出力画像は同じタイプ、幅、高さ、チャネル数でなければなりません。

本関数に対応する FIE ライブラリ関数は fnFIE_gaussian_1Dfilter_conv() となります。
ここに記載されていない詳細な仕様に関しては 「FIE ライブラリ説明書」 を参照して下さい。

引数:
[in] fhSrc 入力画像 ( FGA 画像オブジェクト / type: uc8, s16, us16, double )
[out] fhDst 出力画像 ( FGA 画像オブジェクト / type: uc8, s16, us16, double )
[in] dSigma gaussian フィルタ の σ ( 0.6 以上 )
[in] iNDerivative 微分次数 ( 0, 1, 2 )
[in] bIsVertical 処理方向
  • TRUE : y 方向処理
  • FALSE: x 方向処理
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 画像オブジェクトの値エラー
F_ERR_INVALID_PARAM パラメータ異常 (以下の何れか)
  • dSigma < 0.6
  • iNDerivative < 0
  • iNDerivative > 2
  • bIsVertical != TRUE && bIsVertical != FALSE
F_ERR_NOMEMORY メモリ不足エラー
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
本関数は非同期関数です。非同期関数の詳細については 「非同期関数」のページを参照して下さい。

INT FVALGAPI fnFGA_kernel_filter ( FHANDLE  hsrc,
FHANDLE  hdst,
F_FILTER_KERNEL_T *  kernel,
INT  border_mode,
DOUBLE  border_value 
)

任意カーネルフィルタ

パラメータ kernel による 2 次元畳み込み処理を行います。

パラメータ kernel は カーネル指定構造体 であり、 FIE ライブラリ で使用するものと同じものを使用します。
( カーネル指定構造体 F_FILTER_KERNEL_T の詳細については、 「FIE ライブラリ説明書」 を参照して下さい )

入力画像と出力画像の 画像型、幅、高さ、チャネル数 は同じでなければなりません。

本関数に対応する FIE ライブラリ関数は fnFIE_kernel_filter() となります。
ここに記載されていない詳細な仕様に関しては 「FIE ライブラリ説明書」 を参照して下さい。

引数:
[in] hsrc 入力画像 ( FGA 画像オブジェクト / type: uc8, s16, us16, double )
[out] hdst 出力画像 ( FGA 画像オブジェクト / type: uc8, s16, us16, double )
[in] kernel カーネル指定構造体のポインタ.
[in] border_mode ボーダー処理モード. 下記のいずれかを指定.
  • F_BORDER_NONE ボーダー部分は処理しない
  • F_BORDER_ZERO 0埋めモード
  • F_BORDER_VALUE 一定値モード
  • F_BORDER_CONTINUOUS 端延長モード
  • F_BORDER_REPEAT 繰り返しモード
  • F_BORDER_MIRROR1 反転モード1
  • F_BORDER_MIRROR2 反転モード2
[in] border_value ボーダー濃度値.
border_mode が F_BORDER_VALUE の場合のみ使用されます. その他のモードの場合、この値は無視されます.
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像オブジェクトが渡された
F_ERR_INVALID_PARAM パラメータ異常
F_ERR_NOMEMORY メモリ不足エラー
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
本関数は非同期関数です。非同期関数の詳細については 「非同期関数」のページを参照して下さい。

使用例:
// エラー処理は省略しているので注意して下さい.

// FIE ライブラリ関連インクルードファイル.
#include "fie.h"

// FGA ライブラリインクルードファイル.
#include "fga.h"


INT main( VOID )
{
    // 入力画像.
    FHANDLE src_FIE = NULL;
    FHANDLE src_FGA = NULL;

    // 出力画像.
    FHANDLE dst_FIE = NULL;
    FHANDLE dst_FGA = NULL;

    INT ch, type, width, height;


    // カーネル指定構造体.
    F_FILTER_KERNEL_T kernel;

    // カーネルの値 ( 5 × 5 の X 方向ソーベルフィルタ )
    DOUBLE kernel_vals[ 5 * 5 ] = {
         5.0,   4.0,  0.0,   -4.0,   -5.0,
         8.0,  10.0,  0.0,  -10.0,   -8.0,
        10.0,  20.0,  0.0,  -20.0,  -10.0,
         8.0,  10.0,  0.0,  -10.0,   -8.0,
         5.0,   4.0,  0.0,   -4.0,   -5.0
    };


    // ライブラリの初期化処理.
    fnFIE_setup();
    fnFGA_setup();


    // 入力画像を FIE 画像オブジェクトとして用意する. (サンプルの為ファイルから読込み).
    fnFIE_load_bmp( "src_img.bmp", &src_FIE, F_COLOR_IMG_TYPE_UC8 );
    fnFIE_img_get_params( src_FIE, &ch, &type, NULL, &width, &height );

    // 入力画像を FGA 画像オブジェクトにコピー.
    src_FGA = fnFGA_img_root_alloc( type, ch, width, height );
    fnFGA_img_copy( src_FIE, src_FGA );

    // 出力画像を FGA 画像オブジェクトとして確保する.
    dst_FGA = fnFGA_img_root_alloc( type, ch, width, height );


    // カーネル指定構造体 の設定.
    kernel.p = kernel_vals;
    kernel.denom = 1.0;
    kernel.size_x = 5;
    kernel.size_y = 5;
    kernel.anchor_x = 5 / 2;
    kernel.anchor_y = 5 / 2;


    // FGA ライブラリによる 任意カーネルフィルタ を実行する.
    fnFGA_kernel_filter( src_FGA, dst_FGA, &kernel, F_BORDER_NONE, 0.0 );


    // 出力画像を、FIE 画像オブジェクトにコピー.
    dst_FIE = fnFIE_img_root_alloc( type, ch, width, height );
    fnFGA_img_copy( dst_FGA, dst_FIE );

    // 出力画像をファイルに保存.
    fnFIE_save_bmp( "dst_img.bmp", dst_FIE );


    // 画像オブジェクトの解放.
    fnFIE_free_object( src_FIE );
    fnFIE_free_object( src_FGA );
    fnFIE_free_object( dst_FIE );
    fnFIE_free_object( dst_FGA );

    // ライブラリの終了処理.
    fnFIE_teardown();
    fnFGA_teardown();


    return 0;
}

INT FVALGAPI fnFGA_laplacian ( FHANDLE  fhSrc,
FHANDLE  fhDst,
INT  iCase,
INT  border_mode,
DOUBLE  value 
)

laplacian フィルタ.

laplacian フィルタを施します。

入力画像と出力画像は同じタイプ、幅、高さ、チャネル数 でなければなりません。

本関数に対応する FIE ライブラリ関数は fnFIE_laplacian() となります。
ここに記載されていない詳細な仕様に関しては 「FIE ライブラリ説明書」 を参照して下さい。

引数:
[in] fhSrc 入力画像ハンドル (FGA 画像オブジェクト / type: uc8, s16, us16, double)
[out] fhDst 出力画像ハンドル (FGA 画像オブジェクト / type: uc8, s16, us16, double)
[in] iCase フィルタ選択 (0 or 1)
[in] border_mode ボーダー処理モード。下記のいずれかを指定。
  • F_BORDER_NONE ボーダー部分は処理しない
  • F_BORDER_ZERO 0埋めモード
  • F_BORDER_VALUE 一定値モード
  • F_BORDER_CONTINUOUS 端延長モード
  • F_BORDER_REPEAT 繰り返しモード
  • F_BORDER_MIRROR1 反転モード1
  • F_BORDER_MIRROR2 反転モード2
[in] value ボーダー濃度値。
border_mode が F_BORDER_VALUE の場合のみ使用されます。 その他のモードの場合、この値は無視されます。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像ハンドルが渡された
F_ERR_INVALID_PARAM パラメータ異常
F_ERR_NOMEMORY メモリ不足エラー
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
本関数は非同期関数です。非同期関数の詳細については 「非同期関数」のページを参照して下さい。

INT FVALGAPI fnFGA_sharp ( FHANDLE  hsrc,
FHANDLE  hdst,
INT  border_mode,
DOUBLE  border_value 
)

鮮鋭化フィルタ.

3x3 の鮮鋭化フィルタを入力画像に適用し、出力画像に結果を出力します。

出力画像は入力画像と同じサイズ、チャネル数、画像型でなければなりません。 但し、入力画像型が F_IMG_UC8 である場合には 出力画像型が F_IMG_S16 であることが許可されます。

本関数に対応する FIE ライブラリ関数は fnFIE_sharp() となります。
ここに記載されていない詳細な仕様に関しては 「FIE ライブラリ説明書」 を参照して下さい。

引数:
[in] hsrc 入力画像ハンドル (FGA 画像オブジェクト / type: uc8, s16, us16, double)
[out] hdst 出力画像ハンドル (FGA 画像オブジェクト / type: uc8, s16, us16, double)
[in] border_mode ボーダー処理モード。下記のいずれかを指定。
  • F_BORDER_NONE ボーダー部分は処理しない
  • F_BORDER_ZERO 0埋めモード
  • F_BORDER_VALUE 一定値モード
  • F_BORDER_CONTINUOUS 端延長モード
  • F_BORDER_REPEAT 繰り返しモード
  • F_BORDER_MIRROR1 反転モード1
  • F_BORDER_MIRROR2 反転モード2
[in] border_value ボーダー濃度値。
border_mode が F_BORDER_VALUE の場合のみ使用されます。 その他のモードの場合は、この値は無視されます。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像ハンドルが渡された
F_ERR_INVALID_PARAM パラメータ異常
F_ERR_NOMEMORY メモリ不足エラー
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
本関数は非同期関数です。非同期関数の詳細については 「非同期関数」のページを参照して下さい。

INT FVALGAPI fnFGA_medianMxN ( FHANDLE  hSrc,
FHANDLE  hTar,
INT  iH,
INT  iV,
INT  iBrdMod 
)

median filter with variable filtering window

任意のフィルタサイズ(M x N)で median filter を施します。 なお、フィルタのアンカー位置は、フィルタの中心となります。

フィルタサイズは下記の条件をすべて満たしている必要があります。

  • フィルタの幅と高さは奇数である
  • 幅と高さは共に1以上253以下である
  • 幅と高さは共に1ではない

入力画像と出力画像は下記の条件をすべて満たしている必要があります。

  • サイズ(幅・高さ)、チャネル数、画像の型が等しい
  • 入力画像の型はF_IMG_UC8, F_IMG_S16, F_IMG_US16, F_IMG_DOUBLE のいずれか
  • 画像サイズはフィルタサイズより小さくないこと

本関数に対応する FIE ライブラリ関数は fnFIE_medianMxN() となります。
ここに記載されていない詳細な仕様に関しては 「FIE ライブラリ説明書」 を参照して下さい。

処理速度について
本関数は十分に最適化されておらず、特定の画像型・フィルタサイズ・Compute CapabilityではFIEのメディアンフィルタ関数fnFIE_medianMxN()よりも大幅に悪化します。

DOUBLE型の場合、フィルタ面積が49より大きいフィルタはFIEより低速となる可能性があり、13×13以上ではほとんどの環境で低速となります。 フィルタサイズの増大に合わせて、最大十数倍程度の低速化が発生します。

UC8, S16, US16型について、以下の場合においてCPUの方が高速である可能性があります。

  • フィルタ幅が19以上であり、フィルタ高さより大きい場合
    • fnFIE_medianMxN()の方が数倍程度高速である可能性があります。 これは、fnFIE_medianMxN()がフィルタ高さが小さい場合に最適化されているためです。 特にフィルタ幅と高さに大きな差がある場合に顕著です。
  • フィルタ幅とフィルタ高さが同程度であり、フィルタ幅が17~27程度である場合
  • フィルタ面積が5以下の場合
    • FIEの方がわずかに高速である可能性があります。

また、Compute Capability 5.0より前の世代のGPUボードでは、特定のフィルタサイズで大幅な処理速度の低下が見込まれます。 これは、内部でシェアードメモリAtomicsを使用しているためです。 フィルタ幅と高さの大きい方が、整数型では23以下、DOUBLE型では13以下の場合、この問題は発生しないことが保証されます。

FIEより低速になる場合は、CPUに画像を転送し、fnFIE_medianMxN()を適用し、改めてGPUに転送する方が高速である可能性があります。 実測の上、本関数を使用するかご検討ください。

引数:
[in] hSrc 入力画像 ( FGA 画像オブジェクト / type: uc8, s16, us16, double )
[out] hTar 出力画像 ( FGA 画像オブジェクト / type: uc8, s16, us16, double )
[in] iH フィルタの幅(水平方向)
  • 1 <= iH <= 253
  • 奇数である
  • iH , iV が共に1ではない
[in] iV フィルタの高さ(垂直方向)
  • 1 <= iV <= 253
  • 奇数である
  • iH , iV が共に1ではない
[in] iBrdMod ボーダー処理モード
  • F_BORDER_NONE ボーダー拡張しない
  • F_BORDER_CONTINUOUS 端延長モード
  • F_BORDER_MIRROR1 反転モード1
  • F_BORDER_MIRROR2 反転モード2
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 画像オブジェクトの値エラー
F_ERR_NOMEMORY メモリ不足エラー
F_ERR_INVALID_PARAM パラメータ異常
  • iBrdMod 異常
  • iH 又は iV サイズ異常
F_ERR_UNSUPPORTED 未サポートエラー
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
本関数は非同期関数です。非同期関数の詳細については 「非同期関数」のページを参照して下さい。

INT FVALGAPI fnFGA_median ( FHANDLE  hsrc,
FHANDLE  hdst,
INT  border_mode,
DOUBLE  value 
)

median filter

median filter を施します。 注目画素を中心とする 3x3 の領域内にある 9 つの値の中央値で注目画素の値を置き換えるフィルタです。

入力画像と出力の 画像型、幅、高さ、チャネル数 は同じでなければなりません。

本関数に対応する FIE ライブラリ関数は fnFIE_median() となります。
ここに記載されていない詳細な仕様に関しては 「FIE ライブラリ説明書」 を参照して下さい。

引数:
[in] hsrc 入力画像 ( FGA 画像オブジェクト / type: uc8, s16, us16, double )
[out] hdst 出力画像 ( FGA 画像オブジェクト / type: uc8, s16, us16, double )
[in] border_mode ボーダー処理モード
  • F_BORDER_NONE ボーダー部分は処理しない
  • F_BORDER_ZERO 0埋めモード
  • F_BORDER_VALUE 一定値モード
  • F_BORDER_CONTINUOUS 端延長モード
  • F_BORDER_REPEAT 繰り返しモード
  • F_BORDER_MIRROR1 反転モード1
  • F_BORDER_MIRROR2 反転モード2
[in] value ボーダー濃度値。
border_mode が F_BORDER_VALUE の場合のみ使用されます。 その他のモードの場合、この値は無視されます。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 画像オブジェクトの値エラー
F_ERR_NOMEMORY メモリ不足エラー
F_ERR_INVALID_PARAM パラメータ異常
F_ERR_UNSUPPORTED 未サポートエラー
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
本関数は非同期関数です。非同期関数の詳細については 「非同期関数」のページを参照して下さい。

INT FVALGAPI fnFGA_minMxN ( FHANDLE  hsrc,
FHANDLE  hdst,
INT  size_m,
INT  size_n,
INT  border_mode,
DOUBLE  border_val 
)

最小値フィルタ (MxN)

任意のフィルタサイズ(MxN)において最小値フィルタを施します。 フィルタのアンカー位置は、フィルタの中心となります。
つまり注目画素を中心とする MxN 領域内にある最小画素値で注目画素の値が置き換えられます。

フィルタサイズは下記の条件を満たしている必要があります。

  • フィルタの幅と高さが共に1以上の奇数である
  • フィルタのサイズは画像サイズ以下である

入力画像と出力画像は下記の条件を満たしている必要があります。

  • 入力画像と出力画像の幅と高さは同じである
  • 入力画像と出力画像のチャネル数は同じである
  • 入力画像と出力画像の画像型は同じである

本関数に対応する FIE ライブラリ関数は fnFIE_minMxN() となります。
ここに記載されていない詳細な仕様に関しては 「FIE ライブラリ説明書」 を参照して下さい。

引数:
[in] hsrc 入力画像 ( FGA 画像オブジェクト / type: uc8, s16, us16, double )
[out] hdst 出力画像 ( FGA 画像オブジェクト / type: uc8, s16, us16, double )
[in] size_m フィルタの幅 ( 水平方向 1 以上画像幅以下の奇数 )
[in] size_n フィルタの高さ ( 垂直方向 1 以上画像高さ以下の奇数 )
[in] border_mode ボーダー処理モード. 下記のいずれかを指定.
  • F_BORDER_NONE ボーダー部分は処理しない
  • F_BORDER_ZERO 0埋めモード
  • F_BORDER_VALUE 一定値モード
  • F_BORDER_CONTINUOUS 端延長モード
  • F_BORDER_REPEAT 繰り返しモード
  • F_BORDER_MIRROR1 反転モード1
  • F_BORDER_MIRROR2 反転モード2
[in] border_val ボーダー濃度値.
border_mode が F_BORDER_VALUE の場合のみ使用されます. その他のモードの場合、この値は無視されます.
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像オブジェクトが渡された
F_ERR_INVALID_PARAM パラメータ異常
F_ERR_NOMEMORY メモリ不足エラー
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
本関数は非同期関数です。非同期関数の詳細については 「非同期関数」のページを参照して下さい。

INT FVALGAPI fnFGA_maxMxN ( FHANDLE  hsrc,
FHANDLE  hdst,
INT  size_m,
INT  size_n,
INT  border_mode,
DOUBLE  border_val 
)

最大値フィルタ (MxN)

任意のフィルタサイズ(MxN)において最大値フィルタを施します。 フィルタのアンカー位置は、フィルタの中心となります。
つまり注目画素を中心とする MxN 領域内にある最大画素値で注目画素の値が置き換えられます。

フィルタサイズは下記の条件を満たしている必要があります。

  • フィルタの幅と高さが共に1以上の奇数である
  • フィルタのサイズは画像サイズ以下である

入力画像と出力画像は下記の条件を満たしている必要があります。

  • 入力画像と出力画像の幅と高さは同じである
  • 入力画像と出力画像のチャネル数は同じである
  • 入力画像と出力画像の画像型は同じである

本関数に対応する FIE ライブラリ関数は fnFIE_maxMxN() となります。
ここに記載されていない詳細な仕様に関しては 「FIE ライブラリ説明書」 を参照して下さい。

引数:
[in] hsrc 入力画像 ( FGA 画像オブジェクト / type: uc8, s16, us16, double )
[out] hdst 出力画像 ( FGA 画像オブジェクト / type: uc8, s16, us16, double )
[in] size_m フィルタの幅 ( 水平方向 1 以上画像幅以下の奇数 )
[in] size_n フィルタの高さ ( 垂直方向 1 以上画像高さ以下の奇数 )
[in] border_mode ボーダー処理モード. 下記のいずれかを指定.
  • F_BORDER_NONE ボーダー部分は処理しない
  • F_BORDER_ZERO 0埋めモード
  • F_BORDER_VALUE 一定値モード
  • F_BORDER_CONTINUOUS 端延長モード
  • F_BORDER_REPEAT 繰り返しモード
  • F_BORDER_MIRROR1 反転モード1
  • F_BORDER_MIRROR2 反転モード2
[in] border_val ボーダー濃度値.
border_mode が F_BORDER_VALUE の場合のみ使用されます. その他のモードの場合、この値は無視されます.
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像オブジェクトが渡された
F_ERR_INVALID_PARAM パラメータ異常
F_ERR_NOMEMORY メモリ不足エラー
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
本関数は非同期関数です。非同期関数の詳細については 「非同期関数」のページを参照して下さい。

INT FVALGAPI fnFGA_sobel ( FHANDLE  hsrc,
FHANDLE  hdst,
INT  calc_mode,
INT  border_mode,
DOUBLE  border_value 
)

sobel フィルタ.

3x3 のソーベル微分フィルタを入力画像に適用し、出力画像に結果を出力します。

出力画像は入力画像と同じサイズ、チャネル数、画像型でなければなりません。 但し、入力画像型が F_IMG_UC8 である場合には 出力画像型が F_IMG_S16 であることが許可されます。

本関数に対応する FIE ライブラリ関数は fnFIE_sobel() となります。
ここに記載されていない詳細な仕様に関しては 「FIE ライブラリ説明書」 を参照して下さい。

引数:
[in] hsrc 入力画像ハンドル (FGA 画像オブジェクト / type: uc8, s16, us16, double)
[out] hdst 出力画像ハンドル (FGA 画像オブジェクト / type: uc8, s16, us16, double)
[in] calc_mode sobel の計算モード。下記のいずれかを指定。
  • F_SOBEL_X_MODE X方向微分
  • F_SOBEL_Y_MODE Y方向微分
  • F_SOBEL_XY_MODE XY方向微分 (絶対値和)
  • F_SOBEL_SQRT_MODE XY方向微分 (ユークリッド距離)
[in] border_mode ボーダー処理モード。下記のいずれかを指定。
  • F_BORDER_NONE ボーダー部分は処理しない
  • F_BORDER_ZERO 0埋めモード
  • F_BORDER_VALUE 一定値モード
  • F_BORDER_CONTINUOUS 端延長モード
  • F_BORDER_REPEAT 繰り返しモード
  • F_BORDER_MIRROR1 反転モード1
  • F_BORDER_MIRROR2 反転モード2
[in] border_value ボーダー濃度値。
border_mode が F_BORDER_VALUE の場合のみ使用されます。 その他のモードの場合は、この値は無視されます。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像ハンドルが渡された
F_ERR_INVALID_PARAM パラメータ異常
F_ERR_NOMEMORY メモリ不足エラー
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
本関数は非同期関数です。非同期関数の詳細については 「非同期関数」のページを参照して下さい。

INT FVALGAPI fnFGA_sobel_dir ( FHANDLE  hsrc,
FHANDLE  hdst,
INT  border_mode,
DOUBLE  border_value 
)

sobel フィルタ.

3x3 のソーベル微分フィルタのX,Y方向微分値を使用して、エッジ角度画像を出力します。

出力画像は入力画像と同じサイズ、チャネル数でなければなりません。 また、出力画像の画像型は F_IMG_S16 でなければなりません。

本関数に対応する FIE ライブラリ関数は fnFIE_sobel_dir() となります。
ここに記載されていない詳細な仕様に関しては 「FIE ライブラリ説明書」 を参照して下さい。

引数:
[in] hsrc 入力画像ハンドル (FGA 画像オブジェクト / type: uc8, s16, us16, double)
[out] hdst 出力画像ハンドル (FGA 画像オブジェクト / type: s16)
[in] border_mode ボーダー処理モード。下記のいずれかを指定。
  • F_BORDER_NONE ボーダー部分は処理しない
  • F_BORDER_ZERO 0埋めモード
  • F_BORDER_VALUE 一定値モード
  • F_BORDER_CONTINUOUS 端延長モード
  • F_BORDER_REPEAT 繰り返しモード
  • F_BORDER_MIRROR1 反転モード1
  • F_BORDER_MIRROR2 反転モード2
[in] border_value ボーダー濃度値。
border_mode が F_BORDER_VALUE の場合のみ使用されます。 その他のモードの場合は、この値は無視されます。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像ハンドルが渡された
F_ERR_INVALID_PARAM パラメータ異常
F_ERR_NOMEMORY メモリ不足エラー
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
本関数は非同期関数です。非同期関数の詳細については 「非同期関数」のページを参照して下さい。

INT FVALGAPI fnFGA_prewitt ( FHANDLE  hsrc,
FHANDLE  hdst,
enum f_filter_mode  calc_mode,
INT  border_mode,
DOUBLE  border_value 
)

prewitt フィルタ.

3x3 の prewitt 微分フィルタを入力画像に適用し、出力画像に結果を出力します。

出力画像は入力画像と同じサイズ、チャネル数、画像型でなければなりません。 但し、入力画像型が F_IMG_UC8 である場合には 出力画像型が F_IMG_S16 であることが許可されます。

本関数に対応する FIE ライブラリ関数は fnFIE_prewitt() となります。
ここに記載されていない詳細な仕様に関しては 「FIE ライブラリ説明書」 を参照して下さい。

引数:
[in] hsrc 入力画像ハンドル (FGA 画像オブジェクト / type: uc8, s16, us16, double)
[out] hdst 出力画像ハンドル (FGA 画像オブジェクト / type: uc8, s16, us16, double)
[in] calc_mode prewitt の計算モード。下記のいずれかを指定。
  • F_FILTER_X_MODE X方向微分
  • F_FILTER_Y_MODE Y方向微分
  • F_FILTER_XY_MODE XY方向微分(絶対値和)
  • F_FILTER_SQRT_MODE XY方向微分(ユークリッド距離)
[in] border_mode ボーダー処理モード。下記のいずれかを指定。
  • F_BORDER_NONE ボーダー部分は処理しない
  • F_BORDER_ZERO 0埋めモード
  • F_BORDER_VALUE 一定値モード
  • F_BORDER_CONTINUOUS 端延長モード
  • F_BORDER_REPEAT 繰り返しモード
  • F_BORDER_MIRROR1 反転モード1
  • F_BORDER_MIRROR2 反転モード2
[in] border_value ボーダー濃度値。
border_mode が F_BORDER_VALUE の場合のみ使用されます。 その他のモードの場合は、この値は無視されます。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像ハンドルが渡された
F_ERR_INVALID_PARAM パラメータ異常
F_ERR_NOMEMORY メモリ不足エラー
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
本関数は非同期関数です。非同期関数の詳細については 「非同期関数」のページを参照して下さい。

INT FVALGAPI fnFGA_solodel ( const FHANDLE  hSrc,
FHANDLE  hDst,
INT  color 
)

孤立点除去.

処理対象の 2 値画像について, 白または黒の孤立点を除去します。 孤立点とは, 8 近傍画素の色が全て自分の色と異なる場所を言います。

入出力画像はいずれもチャネル数が 1, 画像型が F_IMG_BIN でなければなりません。
また入出力画像のサイズは同じであり, 幅及び高さが 2 以上でなければなりません。

本関数に対応する FIE ライブラリ関数は fnFIE_solodel() となります。
ここに記載されていない詳細な仕様に関しては 「FIE ライブラリ説明書」 を参照して下さい。

引数:
[in] hSrc 入力画像ハンドル (FGA 画像オブジェクト / type: bin)
[out] hDst 出力画像ハンドル (FGA 画像オブジェクト / type: bin)
[in] color 除去対象色
  • 0 黒の孤立点の消去
  • 1 白の孤立点の消去
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像ハンドルが渡された
F_ERR_INVALID_PARAM パラメータ異常
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
本関数は非同期関数です。非同期関数の詳細については 「非同期関数」のページを参照して下さい。


Documentation copyright © 2011 FAST Corporation. [B-002483]
Generated on Thu May 20 10:57:53 2021 for FGA ライブラリ by doxygen 1.5.6-FASTSP-p2