エッジ近似線分データの解放
Namespace: fvalgcliAssembly: fvalgcli (in fvalgcli.dll) Version: 3.1.0.0 (3.1.0.11)
Syntax
C# |
---|
public static int fnFIE_free_edge_clust( F_EDGE_CLUST_PTR pedge_clust, int clust_num ) |
Visual Basic |
---|
Public Shared Function fnFIE_free_edge_clust ( pedge_clust As F_EDGE_CLUST_PTR, clust_num As Integer ) As Integer |
Parameters
- pedge_clust
- Type: fvalgcli..::..F_EDGE_CLUST_PTR
抽出した曲線の情報(クラスタ)の配列
- clust_num
- Type: System..::..Int32
抽出した曲線数( clust_num ≧ 0 )
Return Value
Type: Int32以下のエラーコードを返します。
エラーコード:
f_err | 内容 |
---|---|
F_ERR_NONE | 正常終了 |
F_ERR_INVALID_PARAM | パラメータ異常 |
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_edge_connecting() { int status = (int)f_err.F_ERR_NONE; FHANDLE hsrc = FHANDLE.Zero; // 2次元エッジ抽出用. F_DEDGE_PTR edges = F_DEDGE_PTR.Zero; int edge_num = 0; // エッジ点群連結用. F_EDGE_CLUST_PTR clust = F_EDGE_CLUST_PTR.Zero; int clust_num = 0; try { // 入力画像の読み込み. // 適当な画像を読み込んでください. api.fnFIE_load_png(TestImageDir + "/testdata/camcalib_1_uc8.png", ref hsrc, f_color_img_type.F_COLOR_IMG_TYPE_UC8); // 2次元エッジ抽出(相関エッジ)用パラメータの設定. F_EDGE_CORR_PARAMS param = F_EDGE_CORR_PARAMS.init(13, 5, 25.0, 1.0, 160, 6); DPNT_T offset = DPNT_T.init(0, 0); // 2次元エッジ抽出(相関エッジ) api.fnFIE_edge_corr_subpix( hsrc, FHANDLE.Zero, ref param, f_edge_feature_mode.F_EDGE_FEAT_DIRECT, f_border_mode.F_BORDER_CONTINUOUS, offset, ref edges, ref edge_num ); // エッジ点群の連結用パラメータの設定. double weight = 0.07; double threshold1 = 2.0; double threshold2 = 4.0; int area_size = 10; int area_overlap = 3; int min_clust_elem = 3; int mode = 1; // エッジ点群の連結. status = api.fnFIE_edge_connecting( edges, edge_num, weight, threshold1, threshold2, area_size, area_overlap, min_clust_elem, mode, ref clust, ref clust_num ); // エラー判定. Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "エラーが発生しました。({0})", (f_err)status); // 確認用. var hdraw_image = fnPRV_draw_edge_clust(hsrc, edges, clust, clust_num); api.fnFIE_save_png(ResultDir + "/fnFIE_edge_connecting.png", hdraw_image, -1); hdraw_image.Dispose(); } finally { // オブジェクトの開放. hsrc.Dispose(); edges.Dispose(); api.fnFIE_free_edge_clust(clust, clust_num); } } } } |
Visual Basic | Copy |
---|---|
' $Revision: 1.1 $ Imports System.Collections.Generic Imports System.Text Imports fvalgcli Public Partial Class FIE <FvPluginExecute> _ Public Sub fnFIE_edge_connecting() Dim status As Integer = CInt(f_err.F_ERR_NONE) Dim hsrc As FHANDLE = FHANDLE.Zero ' 2次元エッジ抽出用. Dim edges As F_DEDGE_PTR = F_DEDGE_PTR.Zero Dim edge_num As Integer = 0 ' エッジ点群連結用. Dim clust As F_EDGE_CLUST_PTR = F_EDGE_CLUST_PTR.Zero Dim clust_num As Integer = 0 Try ' 入力画像の読み込み. ' 適当な画像を読み込んでください. api.fnFIE_load_png(TestImageDir & "/testdata/camcalib_1_uc8.png", hsrc, f_color_img_type.F_COLOR_IMG_TYPE_UC8) ' 2次元エッジ抽出(相関エッジ)用パラメータの設定. Dim param As F_EDGE_CORR_PARAMS = F_EDGE_CORR_PARAMS.init(13, 5, 25.0, 1.0, 160, 6) Dim offset As DPNT_T = DPNT_T.init(0, 0) ' 2次元エッジ抽出(相関エッジ) api.fnFIE_edge_corr_subpix(hsrc, FHANDLE.Zero, param, f_edge_feature_mode.F_EDGE_FEAT_DIRECT, f_border_mode.F_BORDER_CONTINUOUS, offset, _ edges, edge_num) ' エッジ点群の連結用パラメータの設定. Dim weight As Double = 0.07 Dim threshold1 As Double = 2.0 Dim threshold2 As Double = 4.0 Dim area_size As Integer = 10 Dim area_overlap As Integer = 3 Dim min_clust_elem As Integer = 3 Dim mode As Integer = 1 ' エッジ点群の連結. status = api.fnFIE_edge_connecting(edges, edge_num, weight, threshold1, threshold2, area_size, _ area_overlap, min_clust_elem, mode, clust, clust_num) ' エラー判定. Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "エラーが発生しました。({0})", CType(status, f_err)) ' 確認用. ' 確認用. Dim hdraw_image As FHANDLE = fnPRV_draw_edge_clust(hsrc, edges, clust, clust_num) api.fnFIE_save_png(ResultDir & "/fnFIE_edge_connecting2.png", hdraw_image, -1) hdraw_image.Dispose() Finally ' オブジェクトの開放. hsrc.Dispose() edges.Dispose() api.fnFIE_free_edge_clust(clust, clust_num) End Try End Sub End Class |