画像特徴量計算
[画像統計量]


説明

画像の特定の領域のみから特徴量を計算したい場合は、 リージョン処理の画像特徴量計算 を参照ください。


関数

INT FVALGAPI fnFIE_img_calc_average (FHANDLE himg, DOUBLE *average)
 画像濃度値の平均計算
INT FVALGAPI fnFIE_img_calc_similarity (FHANDLE himg1, FHANDLE himg2, FHANDLE hmask, INT mode, DOUBLE *value)
 画像間類似度計算
INT FVALGAPI fnFIE_img_calc_variance (FHANDLE himg, DOUBLE *variance)
 画像濃度値の分散計算
INT FVALGAPI fnFIE_img_minmaxdens (FHANDLE himg, DOUBLE *mindens, DOUBLE *maxdens)
 最小最大濃度値計算

関数

INT FVALGAPI fnFIE_img_calc_average ( FHANDLE  himg,
DOUBLE *  average 
)

画像濃度値の平均計算

画像のチャネルごとの濃度値の平均を計算します。
チャネル数は最大16チャネルです。

画像 himg のチャネル番号Nの濃度値の平均はそれぞれ average[N] に格納されます。

引数:
[in] himg 入力画像 ( type: uc8, s16, us16, double )
[out] average 濃度値の平均の配列
himg のチャネル数分の配列長が必要です。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像が渡された
F_ERR_INVALID_PARAM パラメータ不正 ( averageがNULL )
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_img_calc_similarity ( FHANDLE  himg1,
FHANDLE  himg2,
FHANDLE  hmask,
INT  mode,
DOUBLE *  value 
)

画像間類似度計算

画像間の類似度を計算します。 入力画像は同じ画像型、チャネル、サイズでなければなりません。 マスクに画像を用いる場合、入力画像と同じサイズの1ch画像でなければなりません。

引数:
[in] himg1 入力画像 ( type: uc8, s16, us16, double )
[in] himg2 入力画像 ( type: uc8, s16, us16, double )
[in] hmask リージョンまたはマスク画像( type: bin, uc8 )
リージョンの場合、リージョンと重なる画素を計算に使用します。
マスク画像の場合、マスク画像がゼロでない画素を計算に使用します。
マスクせず入力画像全体を処理したい場合はNULLを渡します。
[in] mode 類似度計算モード
  • 0 : 差分絶対値総和 SAD ( Sum of Abusolute Difference )
  • 1 : 差分二乗和 SSD ( Sum of Squared Difference )
  • 2 : 正規化相互相関 ZNCC ( Zero-means Normalized Cross Correlation )
[out] value 計算結果
類似度計算モード
  • 0 : SAD

    \[ value = \sum_{c=0}^{channels-1}\sum_{y=0}^{hight-1}\sum_{x=0}^{width-1}| Img1_{(c,x,y)} - Img2_{(c,x,y)} | \]

  • 1 : SSD

    \[ value = \sum_{c=0}^{channels-1}\sum_{y=0}^{hight-1}\sum_{x=0}^{width-1}( Img1_{(c,x,y)} - Img2_{(c,x,y)} )^2 \]

  • 2 : ZNCC

    \begin{eqnarray*} value &=& \frac{ V_{12} }{ \sqrt{ V_{1} \cdot V_{2} } }\\ V_{1} &=& \frac{1}{N}\sum_{c=0}^{channels-1}\sum_{y=0}^{hight-1}\sum_{x=0}^{width-1}( Img1_{(c,x,y)} )^2 - \frac{1}{N^2} \left( SUM_{1} \right)^2\\ V_{2} &=& \frac{1}{N}\sum_{c=0}^{channels-1}\sum_{y=0}^{hight-1}\sum_{x=0}^{width-1}( Img2_{(c,x,y)} )^2 - \frac{1}{N^2} \left( SUM_{2} \right)^2\\ V_{12} &=& \frac{1}{N}\sum_{c=0}^{channels-1}\sum_{y=0}^{hight-1}\sum_{x=0}^{width-1}( Img1_{(c,x,y)} \cdot Img2_{(c,x,y)} ) - \frac{1}{N^2} \left( SUM_{1} \cdot SUM_{2} \right)\\ N &=& channels \cdot width \cdot height\\ SUM_{1} &=& \sum_{c=0}^{channels-1}\sum_{y=0}^{hight-1}\sum_{x=0}^{width-1} Img1_{(c,x,y)}\\ SUM_{2} &=& \sum_{c=0}^{channels-1}\sum_{y=0}^{hight-1}\sum_{x=0}^{width-1} Img2_{(c,x,y)} \end{eqnarray*}

戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像が渡された
F_ERR_INVALID_OBJECT maskにリージョンでも画像でもないオブジェクトが渡された
F_ERR_INVALID_PARAM パラメータ不正
F_ERR_NOMEMORY メモリ不足エラー
F_ERR_CALC_IMPOSSIBLE 計算不能 正規化相互相関において分散が0の画像が入力されたりマスクで計算すべき領域が消えたりしたなど
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_img_calc_variance ( FHANDLE  himg,
DOUBLE *  variance 
)

画像濃度値の分散計算

画像のチャネルごとの濃度値の分散を計算します。
チャネル数は最大16チャネルです。
入力画像のサイズは幅と高さが共に1ではないものとします。
本関数での分散値は標本分散を計算しています。
画像の総画素数をn 濃度値をx とすると分散値$ \sigma^2 $

\[ \sigma^2=\frac{1}{n} \sum^{n}_{i=1}x_{i}^{2} - \bar{x}^{2}\]

となります。

画像 himg のチャネル番号Nの濃度値の分散はそれぞれ variance[N] に格納されます。

引数:
[in] himg 入力画像 ( type: uc8, s16, us16, double )
[out] variance 濃度値の分散の配列
himg のチャネル数分の配列長が必要です。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像が渡された
F_ERR_INVALID_PARAM パラメータ不正 ( varianceがNULL )
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_img_minmaxdens ( FHANDLE  himg,
DOUBLE *  mindens,
DOUBLE *  maxdens 
)

最小最大濃度値計算

画像のチャネルごとの最小最大濃度値を計算します。

画像 himg のチャネル番号Nの最大最小濃度値はそれぞれ mindens[N], maxdens[N] に格納されます。 ただし、 himg が F_IMG_RGBQUAD または F_IMG_RGBTRIPLE の場合には、以下のように 濃度値が格納されます。

F_IMG_RGBQUADの場合

  • mindens[0], maxdens[0] : 赤成分(rgbRed)の最大・最小濃度値
  • mindens[1], maxdens[1] : 緑成分(rgbGreen)の最大・最小濃度値
  • mindens[2], maxdens[2] : 青成分(rgbBlue)の最大・最小濃度値

F_IMG_RGBTRIPLEの場合

  • mindens[0], maxdens[0] : 青成分の最大・最小濃度値
  • mindens[1], maxdens[1] : 緑成分の最大・最小濃度値
  • mindens[2], maxdens[2] : 赤成分の最大・最小濃度値

注意:
  • himg の型が F_IMG_RGBQUAD または F_IMG_RGBTRIPLE である場合には チャネル数は1でなければいけません。
  • maxdens, mindens には画像 himg のチャネル数分の配列長が必要です。 ただし himg が F_IMG_RGBQUAD の場合には配列長は4以上、 F_IMG_RGBTRIPLE の場合には配列長は3以上必要です。
  • himg にNULLチャイルド画像が渡された場合はエラーとなり、 F_ERR_INVALID_IMAGE を返します。
  • maxdens, mindens の内、不要なものはNULLに設定することが可能です。 両方にNULLが渡された場合はエラーとなり、 F_ERR_INVALID_PARAM を返します。
引数:
[in] himg 入力画像 ( type: bin, uc8, s16, us16, i32, ui32, i64, float, double, rgbq, rgbtri )
[out] mindens 最小濃度値の配列
himg のチャネル数分の長さが必要です。
himg がF_IMG_RGBQUADの場合には長さ4以上の配列、F_IMG_RGBTRIPLE型の場合には長さ3以上の配列を指定してください。
[out] maxdens 最大濃度値の配列
himg のチャネル数分の長さが必要です。
himg がF_IMG_RGBQUADの場合には長さ4以上の配列、F_IMG_RGBTRIPLE型の場合には長さ3以上の配列を指定してください。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像が渡された
F_ERR_INVALID_PARAM パラメータ不正
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー


Documentation copyright © 2009-2024 FAST Corporation.
Generated on Fri Aug 9 16:38:47 2024 for FIEライブラリ by doxygen 1.5.6-FASTSP-p2