画像特徴量:指定座標を原点とする濃淡モーメント
Namespace: fvalgcliAssembly: fvalgcli (in fvalgcli.dll) Version: 3.1.0.0 (3.1.0.11)
Syntax
C# |
---|
public static int fnFIE_img_pixelmoment( FHANDLE himg, FHANDLE hreg, double orgnx, double orgny, ref double M10, ref double M01, ref double M20, ref double M02, ref double M11 ) |
Visual Basic |
---|
Public Shared Function fnFIE_img_pixelmoment ( himg As FHANDLE, hreg As FHANDLE, orgnx As Double, orgny As Double, ByRef M10 As Double, ByRef M01 As Double, ByRef M20 As Double, ByRef M02 As Double, ByRef M11 As Double ) As Integer |
Parameters
- himg
- Type: fvalgcli..::..FHANDLE
処理対象画像( type: uc8, s16, us16, double )
- hreg
- Type: fvalgcli..::..FHANDLE
領域
- orgnx
- Type: System..::..Double
濃淡モーメントを求めるときに原点とするX座標
- orgny
- Type: System..::..Double
濃淡モーメントを求めるときに原点とするY座標
- M10
- Type: System..::..Double%
X方向1次濃淡モーメント
- M01
- Type: System..::..Double%
Y方向1次濃淡モーメント
- M20
- Type: System..::..Double%
X方向2次濃淡モーメント
- M02
- Type: System..::..Double%
Y方向2次濃淡モーメント
- M11
- Type: System..::..Double%
XY方向2次濃淡モーメント
Return Value
Type: Int32以下のエラーコードを返します。
エラーコード:
f_err | 内容 |
---|---|
F_ERR_NONE | 正常終了 |
F_ERR_INVALID_IMAGE | 不正な画像オブジェクト |
F_ERR_INVALID_OBJECT | 領域が不正なハンドル |
F_ERR_CALC_IMPOSSIBLE | 計算不能 |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
Remarks
Examples
C# | Copy |
---|---|
// $Revision: 1.1 $ using System; using System.Collections.Generic; using System.Text; using fvalgcli; namespace TC { public partial class FIE { [FvPluginExecute] public void fnFIE_img_pixelmoment() { FHANDLE himage = FHANDLE.Zero; FHANDLE hreg = FHANDLE.Zero; FHANDLE himg = FHANDLE.Zero; try { // リージョン作成用の2値画像を読み込む. int status1 = api.fnFIE_load_img_file(TestImageDir + "/TC/SampleCode/palette_BIN_1.png", ref himage, f_color_img_type.F_COLOR_IMG_TYPE_UC8); Assert.IsTrue(status1 == (int)f_err.F_ERR_NONE, "エラーが発生しました。({0})", (f_err)status1); Assert.IsTrue(himage != FHANDLE.Zero, "himage が異常です."); // 画像からリージョンを作成する. // --- オフセット. PNT_T offset = new PNT_T(); offset.x = 0; offset.y = 0; // --- 作成. hreg = api.fnFIE_region_encode(himage, offset); Assert.IsTrue(hreg != FHANDLE.Zero, "リージョン作成でエラー."); // 計測用の濃淡画像を読み込む. int status2 = api.fnFIE_load_img_file(TestImageDir + "/TC/SampleCode/palette_UC8.png", ref himg, f_color_img_type.F_COLOR_IMG_TYPE_UC8); Assert.IsTrue(status2 == (int)f_err.F_ERR_NONE, "エラーが発生しました。({0})", (f_err)status2); // 画像特徴量:指定座標を原点とする濃淡モーメント. double orgnx = 0; double orgny = 0; double M10 = 0; double M01 = 0; double M20 = 0; double M02 = 0; double M11 = 0; int status = api.fnFIE_img_pixelmoment(himg, hreg, orgnx, orgny, ref M10, ref M01, ref M20, ref M02, ref M11); Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "img_pixelmomentでエラーが発生しました。({0})", (f_err)status); // 値の確認. Console.WriteLine("M10={0},M01={1},M20={2},M02={3},M11={4}", M10, M01, M20, M02, M11); } finally { himage.Dispose(); hreg.Dispose(); himg.Dispose(); } } } } |
Visual Basic | Copy |
---|---|
' $Revision: 1.1 $ Imports System.Collections.Generic Imports System.Text Imports fvalgcli Public Partial Class FIE <FvPluginExecute> _ Public Sub fnFIE_img_pixelmoment() Dim himage As FHANDLE = FHANDLE.Zero Dim hreg As FHANDLE = FHANDLE.Zero Dim himg As FHANDLE = FHANDLE.Zero Try ' リージョン作成用の2値画像を読み込む. Dim status1 As Integer = api.fnFIE_load_img_file(TestImageDir & "/TC/SampleCode/palette_BIN_1.png", himage, f_color_img_type.F_COLOR_IMG_TYPE_UC8) Assert.IsTrue(status1 = CInt(f_err.F_ERR_NONE), "エラーが発生しました。({0})", CType(status1, f_err)) Assert.IsTrue(himage <> FHANDLE.Zero, "himage が異常です.") ' 画像からリージョンを作成する. ' --- オフセット. Dim offset As New PNT_T() offset.x = 0 offset.y = 0 ' --- 作成. hreg = api.fnFIE_region_encode(himage, offset) Assert.IsTrue(hreg <> FHANDLE.Zero, "リージョン作成でエラー.") ' 計測用の濃淡画像を読み込む. Dim status2 As Integer = api.fnFIE_load_img_file(TestImageDir & "/TC/SampleCode/palette_UC8.png", himg, f_color_img_type.F_COLOR_IMG_TYPE_UC8) Assert.IsTrue(status2 = CInt(f_err.F_ERR_NONE), "エラーが発生しました。({0})", CType(status2, f_err)) ' 画像特徴量:指定座標を原点とする濃淡モーメント. Dim orgnx As Double = 0 Dim orgny As Double = 0 Dim M10 As Double = 0 Dim M01 As Double = 0 Dim M20 As Double = 0 Dim M02 As Double = 0 Dim M11 As Double = 0 Dim status As Integer = api.fnFIE_img_pixelmoment(himg, hreg, orgnx, orgny, M10, M01, _ M20, M02, M11) Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "img_pixelmomentでエラーが発生しました。({0})", CType(status, f_err)) ' 値の確認. Console.WriteLine("M10={0},M01={1},M20={2},M02={3},M11={4}", M10, M01, M20, M02, M11) Finally himage.Dispose() hreg.Dispose() himg.Dispose() End Try End Sub End Class |