本ページでは、リージョンの特徴量計算と2値ブローブ解析の特徴量計算 で求められる特徴量について説明しています。
- area
- xmin, ymin, xmax, ymax
- xmax_at_ymin, xmax_at_ymax, ymin_at_xmax, ymax_at_xmin
- xdiff, ydiff
- rect1_area
- rect1_lratio
- rect1_sratio
- sumx, sumy
- sumx2, sumy2, sumxy
- モーメント
- 重心モーメント
- Huモーメント不変量
- centerx, centery
- majoraxis, minoraxis, axistheta, axisratio
- diameter_equidisk
- lsize, wsize
- rect2_area
- rect2_lratio
- rect2_sratio
- feret_diameter
- feretmax, feretmin, fmax_theta, fmin_theta
- 凸包
- 最小外接円
- 外接長方形の頂点座標
- 外接長方形の頂点座標(指定角)
- diameter_equicircle
- convex_area, convex_perim
- convex_arearatio, convex_perimratio
- dpmax, dpmin, dpave, dpsigma
- circularity1
- circularity2
- circularity3
- ns
- holes
- sc, st
- hratio
- dsmax, dsmin, dsave
- dcmax, dcmin, dcave
- pps
- perim
- feature_boundary
領域の面積を表す特徴量です。
- 参照:
- fnFIE_region_get_area(), fnFIE_measure_get_area()
領域のx、y座標の最大値と最小値を表す特徴量です。
- 参照:
- fnFIE_region_get_xyrange(), fnFIE_measure_get_xyrange()
領域のx、y座標の最大最小位置を表す特徴量です。
- xmin_at_ymin : yの最小位置におけるxの最小値
- xmax_at_ymax : yの最大位置におけるxの最大値
- ymin_at_xmax : xの最大位置におけるyの最小値
- ymax_at_xmin : xの最小位置におけるyの最大値
- 参照:
- fnFIE_region_get_maxminpos(), fnFIE_measure_get_maxminpos()
外接矩形の横サイズ(xdiff)と縦サイズ(ydiff)を表す特徴量です。
下式のように定義されます。
- xdiff : 外接矩形横サイズ
- ydiff : 外接矩形縦サイズ
- 参照:
- fnFIE_region_get_xydiff(), fnFIE_measure_get_xydiff()
傾き0の外接長方形の面積を表す特徴量です。 下式のように定義されます。
- xdiff : 外接矩形横サイズ
- ydiff : 外接矩形縦サイズ
- rect1_area : 外接長方形の面積
- 参照:
- fnFIE_region_get_rect1_area(), fnFIE_measure_get_rect1_area()
傾き0の外接長方形の縦横比を表す特徴量です。 下式のように定義されます。
- xdiff : 外接矩形横サイズ
- ydiff : 外接矩形縦サイズ
- rect1_lratio : 外接長方形の縦横比
- 参照:
- fnFIE_region_get_rect1_lratio(), fnFIE_measure_get_rect1_lratio()
傾き0の外接長方形の面積比を表す特徴量です。 下式のように定義されます。
- 参照:
- fnFIE_region_get_rect1_sratio(), fnFIE_measure_get_rect1_sratio()
1次モーメントを表す特徴量です 下式のように定義されます。
- x : 領域内の各画素のx座標
- y : 領域内の各画素のy座標
- sumx : x方向1次モーメント
- sumy : y方向1次モーメント
より一般化したN次モーメントの定義は モーメント を参照してください
- 参照:
- fnFIE_region_get_moment1(), fnFIE_measure_get_moment1()
2次モーメントを表す特徴量です。 下式のように定義されます。
- x : 領域内の各画素のx座標
- y : 領域内の各画素のy座標
- sumx2 : x方向2次モーメント
- sumy2 : y方向2次モーメント
- sumxy : 相乗2次モーメント
より一般化したN次モーメントの定義は モーメント を参照してください
- 参照:
- fnFIE_region_get_moment2(), fnFIE_measure_get_moment2()
モーメントを表す特徴量です。 下式のように定義されます。
ここで、
- R : 領域
- x : 各画素のx座標
- y : 各画素のy座標
- p : Xの次数
- q : Yの次数
なお、p=q=0 のとき、
は面積と等しく、式で表せば
となります。
また、sumx, sumy および sumx2, sumy2, sumxy はそれぞれ M の別名称です。それぞれ次のように対応しています。
- 参照:
- fnFIE_region_get_moment1(), fnFIE_measure_get_moment1()
fnFIE_region_get_moment2(), fnFIE_measure_get_moment2()
fnFIE_region_calc_moment3(), fnFIE_measure_get_moment3()
fnFIE_region_calc_moment(), fnFIE_measure_get_moment()
重心モーメントを表す特徴量です。 下式のように定義されます。
なお、p+q≦1 のときは次のようになります。
ここで、
- R : 領域
- x : 各画素のx座標
- y : 各画素のy座標
- centerx : 重心のX座標
- centery : 重心のY座標
- p : Xの次数(0以上)
- q : Yの次数(0以上)
- area : 面積
- 参照:
- fnFIE_region_calc_central_moment2(), fnFIE_measure_get_central_moment2()
fnFIE_region_calc_central_moment3(), fnFIE_measure_get_central_moment3()
fnFIE_region_calc_central_moment(), fnFIE_measure_get_central_moment()
領域のHuモーメント不変量を表す特徴量です。 Huモーメント不変量は、正規化された
重心モーメント から算出される、平行移動、 回転、スケール変化に不変な7つの値
![$h[i]$](form_386.png)
です

。 下式のように定義されます。
ここで
は正規化された重心モーメントであり、下式のように定義されます。
正規化された重心モーメントは、平行移動に加えてスケール変化に対しても不変です。
必ずしも高い識別性能が得られるわけではありませんが、Huモーメント不変量は領域の識別に利用することができます。
- 参考文献:
- M.-K. Hu, Visual pattern recognition by moment invariants, IRE Transactions on Information Theory, vol. 8, no. 2, pp. 179-187, 1962.
- Z. Huang, J. Leng, Analysis of Hu's moment invariants on image scaling and rotation, International Conference on Computer Engineering and Technology, pp. V7-476-V7-480, 2010.
- 参照:
- fnFIE_region_calc_hu_moments(), fnFIE_measure_get_hu_moments()
領域の重心を表す特徴量です。 下式のように定義されます。
- sumx : 領域のx方向1次モーメント
- sumy : 領域のy方向1次モーメント
- area : 領域の面積
- centerx : 重心のX座標
- centery : 重心のY座標
- 参照:
- fnFIE_region_get_center(), fnFIE_measure_get_center()
領域の2次モーメントと等価な楕円(慣性等価楕円)を表す特徴量です。 慣性等価楕円の中心は、重心と同じです。
下式のように定義されます。
但し、axisratio は右辺分母 majoraxis が0の時は0になります。 また、axistheta はラジアンで表され、その角度範囲は
です。
ここで、
はブローブの 正規化された重心2次モーメントであり、それぞれ次のように計算されます。
- majoraxis : 慣性等価楕円 主軸半径
- minoraxis : 慣性等価楕円 副軸半径
- axistheta : 慣性等価楕円 主軸傾き
- axisratio : 慣性等価楕円 主軸副軸長比
- sumx : x方向1次モーメント
- sumy : y方向1次モーメント
- sumx2 : x方向2次モーメント
- sumy2 : y方向2次モーメント
- sumxy : 相乗2次モーメント
- mg20 : x方向重心2次モーメント
- mg02 : y方向重心2次モーメント
- mg11 : 相乗重心2次モーメント
- 注意:
- ブローブの面積が1(1画素のみブローブ)のときは、majoraxis, minoraxis が共に0になります。 ブローブの構成画素が1直線上に並んでいる場合は、minoraxis が0になります。
- 参考文献:
Robert M. Haralick and Linda G. Shapio, ``Computer and Robot Vision, Vol.1'' ISBN 0-201-10877-1, Addison-Wesley Publishing Company, 1991, pp.639-
- 参照:
- fnFIE_region_get_equivalent_ellipse(), fnFIE_measure_get_equivalent_ellipse()
領域の面積と等価な円を表す特徴量です。
下式のように定義されます。
- area : 面積
- diameter_equidisk : 面積等価円 直径
- 参照:
- fnFIE_region_calc_equivalent_disk(), fnFIE_measure_get_equivalent_disk()
慣性主軸と同じ傾きの、領域に外接する長方形のサイズを表す特徴量です。 慣性主軸とは慣性等価楕円の主軸のことで、
axistheta と本ライブラリでは表記しています。 領域内の点(x,y)は(x-0.5,y-0.5),(x+0.5,y-0.5),(x-0.5,y+0.5),(x+0.5,y+0.5)で囲まれる 矩形分の広がりを持っているという定義で外接長方形を求めています。(
feret_diameter 参照 )
- axistheta : 慣性等価楕円 主軸傾き(慣性主軸角)
- lsize : 外接長方形横長
- wsize : 外接長方形縦長
- 参照:
- fnFIE_region_get_rect2_size(), fnFIE_measure_get_rect2_size()
慣性主軸と同じ傾きの、領域に外接する長方形の面積を表す特徴量です。 慣性主軸とは慣性等価楕円の主軸のことで、
axistheta と本ライブラリでは表記しています。
rect2_area は下式にて定義されます。
- lsize : 外接長方形横長
- wsize : 外接長方形縦長
- rect2_area : 外接長方形面積
- 参照:
- fnFIE_region_get_rect2_area(), fnFIE_measure_get_rect2_area()
慣性主軸と同じ傾きの、領域に外接する長方形の縦横比を表す特徴量です。 慣性主軸とは慣性等価楕円の主軸のことで、
axistheta と本ライブラリでは表記しています。
rect2_lratio は下式にて定義されます。
- 参照:
- fnFIE_region_get_rect2_lratio(), fnFIE_measure_get_rect2_lratio()
慣性主軸と同じ傾きの領域に外接する長方形の面積比を表す特徴量です。 慣性主軸とは慣性等価楕円の主軸のことで、
axistheta と本ライブラリでは表記しています。
rect2_sratio は下式にて定義されます。
- 参照:
- fnFIE_region_get_rect2_sratio(), fnFIE_measure_get_rect2_sratio()
領域の指定角でのフェレ径を表す特徴量です。
フェレ径は、座標点の広がりを考える場合と、考えない場合の2通りの計測モードがあります。 座標点の広がりを考えないモードでは、1点のみの領域はどの角度で計測してもフェレ径の値は0となります。
座標点の広がりを考えるモードでは、領域の面積が1画素以上有る場合、出力のフェレ径の値は1.0以上となります。 (例えば1点のみの領域の場合で角度が0度、または±90度のときに1.0が出力されます。) 領域内の1点は幅1の正方矩形領域であるという定義の下に幅計測します。 例えば、領域上の座標(x,y)の点は、左上(x-0.5,y-0.5)、左下(x-0.5,y+0.5)、右下(x+0.5,y+0.5)、右上(x+0.5,y-0.5)で囲まれる矩形領域とみなします。 この時、1画素のみの領域を45度で計測したフェレ径の値は
となります。
4画素の正方形領域に対して、45度でのフェレ径の、各モードでの例を下図に示します。
- フェレ径(Feret's diameter)とは
フェレ径とは、物体が2本の平行な直線によって挟まれた時の2直線の距離です。 下図のFは、斜めに傾いた2直線に領域が挟まれた場合の直線間距離ですが、これがフェレ径のイメージです。 同じく下図のFxが水平方向のフェレ径、Fyが垂直方向のフェレ径になります。 なお点の広がりを考えた場合は、Fxはxdiffと、Fyはydiffとそれぞれ等しい値となります。
- 角度について
引数の角度(theta)には幅を計測する軸とX軸がなす角度を入力してください。
- 参照:
- fnFIE_region_calc_feret_diameter(), fnFIE_measure_get_feret_diameter()
領域の
フェレ径 が最大となる計測角度とそのときのフェレ径、 また、最小となる計測角度とそのときのフェレ径です。 角度値(fmax_theta, f_min_theta)はラジアンで、角度範囲は

です。 (フェレ径計測角度は+PI回転しても同じなので、この角度範囲となります。)
- feretmax : 最大フェレ径
- fmax_theta : 最大フェレ径の計測角度
- feretmin : 最小フェレ径
- fmin_theta : 最小フェレ径の計測角度
- 参照:
- fnFIE_region_calc_feret_diameter_maxmin(), fnFIE_measure_get_feret_diameter_maxmin()
凸包とは、その領域を含む最小の凸多角形のことです。 直感的に言い表すと、木の板に釘を(同じ面に)いくつか打ち付けた後、 その釘がすべて入るように外側から輪ゴムで留めたときにできる輪ゴムの形が凸包となります。 データ解析的には凸多角形という非常に扱い易い形で点集合全体を近似している、と考えられます。
- 参照:
- fnFIE_region_calc_convex2d(), fnFIE_measure_get_convex2d()
最小外接円(最小包含円とも呼ばれる)とは、 領域外周の点の2点または3点に接する(点を通る)円で、 かつ領域内のすべての点を内包する円のうち最小のものです。
最小外接円例
但し、点の広がりについては考慮しません。円と接する点においては、 円はその点の中心を通ります。このため、領域内の点が1点しか無い場合は 最小外接円を求めることは出来ません。
- 参照:
- fnFIE_region_calc_circumcircle(), fnFIE_measure_get_circmcircle()
対象ブローブの外接長方形の4頂点座標です。 座標点列は、0度のときに画像座標系で左上となる点を始点に、 時計回りに頂点を返します。
- 参照:
- fnFIE_region_calc_rect2pos(), fnFIE_measure_get_rect2pos()
対象ブローブの指定した傾きをもった外接長方形の4頂点座標です。 座標点列は、0度のときに画像座標系で左上となる点を始点に、 時計回りに頂点を返します。
領域内の点(x,y)は(x-0.5,y-0.5),(x+0.5,y-0.5),(x-0.5,y+0.5),(x+0.5,y+0.5)で囲まれる 矩形分の広がりを持っているという定義で指定角の外接長方形を求めています。( feret_diameter 参照 )
- 角度について
引数の角度(theta)には外接長方形のある一辺に平行な軸とX軸がなす角度を入力してください。
- 参照:
- fnFIE_region_calc_bounding_rotated_rect_pos(), fnFIE_measure_get_bounding_rotated_rect_pos()
領域の周囲長と円周が等価な円の直径です。
diameter_equicircle は下式にて定義されます。
- perim : 周囲長
- diameter_equicircle : 円周等価円
- 参照:
- fnFIE_region_calc_equivalent_circle(), fnFIE_measure_get_equivalent_circle()
凸包の面積と周囲長を表す特徴量です。 凸包については
ここ を参照してください。
- convex_area : 凸包面積
- convex_perim : 凸包周囲長
- 参照:
- fnFIE_region_calc_convexfeature(), fnFIE_measure_get_convexfeature()
凸包の面積比(領域の面積/凸包面積)、凸包の周囲長比(領域の周囲長/凸包周囲長)を表す特徴量です。
それぞれ下式にて定義されます。
- 参照:
- fnFIE_region_calc_convexratio(), fnFIE_measure_get_convexratio()
領域の重心と境界点列の距離最小値、距離最大値、距離平均値、距離標準偏差値を 表す特徴量です。
- dpmax : 重心・境界点間距離 最大値
- dpmin : 重心・境界点間距離 最小値
- dpave : 重心・境界点間距離 平均値
- dpsigma : 重心・境界点間距離 標準偏差
- 参照:
- fnFIE_region_get_distance_to_boundary(), fnFIE_measure_get_distance_to_boundary()
領域の真円度を表す特徴量です。 circularity1 は下式にて定義されます。
但し、分母が0(周囲長が0)の時は circularity1 は0.0とします。
- 参照:
- fnFIE_region_calc_circularity1(), fnFIE_measure_get_circularity1()
領域の真円度を表す特徴量です。 circularity2 は下式にて定義されます。
- circularity2 : 真円度#2
- area : 面積
- dpmax : 重心・境界間距離最大値
但し、分母が0(外周距離最大値dpmaxが0)の時は circularity2 は 0.0とします。
- 参照:
- fnFIE_region_calc_circularity2(), fnFIE_measure_get_circularity2()
領域の真円度を表す特徴量です。 circularity3 は下式にて定義されます。
- circularity3 : 真円度#3
- dpsigma : 重心・境界間距離標準偏差
- dpave : 重心・境界間距離平均値
但し、分母が0(外周距離平均値dpaveが0)の時は circularity3 は 1.0 とします。
- 参照:
- fnFIE_region_calc_circularity3(), fnFIE_measure_get_circularity3()
ブローブの兄弟数を表す特徴量です。 ブローブの親子関係については
親子関係 を参照してください。
- 参照:
- fnFIE_measure_get_sibling_num()
領域の穴の数を表す特徴量です。
- 参照:
- fnFIE_measure_get_hole_num()
領域の穴の面積と、穴を含んだ全面積を表す特徴量です。
- sc : 穴面積
- st : 全面積 (scと area を足した値)
- 注意
- 2値ブローブ解析では、穴はブローブの子供とその子孫を全て含んだ領域 と定義しています。そのため、子供ブローブ面積の総和と穴面積は異なることが 有ることに注意してください。
Fig. 穴面積と子供面積が異なる例
- 参照:
- fnFIE_measure_get_hole_area()
領域の穴面積比を表す特徴量です。 hratioは下式にて定義されます。
- 参照:
- fnFIE_measure_get_hole_ratio()
兄弟ブローブ間距離を表す特徴量です。 計測対象対象のブローブの重心と、そのブローブの兄弟ブローブの重心との距離を計測します。 ブローブの親子関係については
親子関係 を参照してください。
- dsmax : 兄弟ブローブ間距離 最大値
- dsmin : 兄弟ブローブ間距離 最小値
- dsave : 兄弟ブローブ間距離 平均値
- 参照:
- fnFIE_measure_get_distance_to_siblings()
子供ブローブ間距離を表す特徴量です。 計測対象のブローブの重心と、そのブローブの子供ブローブの重心との距離を計測します。 ブローブの親子関係については
親子関係 を参照してください。
- dcmax : 子供ブローブ間距離 最大値
- dcmin : 子供ブローブ間距離 最小値
- dcave : 子供ブローブ間距離 平均値
- 参照:
- fnFIE_measure_get_distance_to_childs()
面積周囲長比を表す特徴量です。 ppsは下式にて定義されます。
- 参照:
- fnFIE_measure_get_pps()
周囲長を表す特徴量です。 ブローブの境界点列のユークリッド距離を周囲長と定義し、その値を計算します。
- 注意
- 周囲長は連結性の設定により値が変化します。( feature_boundary の項参照 ) 連結性の設定は、リージョンの場合は fnFIE_region_set_connection() にて、 ブローブ解析の場合は fnFIE_measure_execute() の実行時パラメータにて設定します。 また、ブローブ解析の場合は、前景ブローブの連結性と、背景ブローブの連結性が 逆になりますので注意してください。
- 参照:
- fnFIE_region_get_perimeter(), fnFIE_measure_get_perimeter()
領域の周囲座標列です。 領域の境界には external boundary と internal boundary の2種類があります。(下図参照)
また、周囲座標は4連結と8連結の場合で座標が異なることがあります。
本ライブラリでは境界座標は、external boundaryは画像座標系で反時計回りに探索(右手の法則)、 internal boundaryは画像座標系で時計回りに探索します。
- 注意
-
- 参照:
- fnFIE_region_calc_boundary(), fnFIE_measure_get_boundary()
fnFIE_region_calc_boundary_ex(), fnFIE_measure_get_boundary_ex()