您的位置:首页 > 其它

Halcons模板匹配-读取数字

2015-12-28 22:23 941 查看

//


// File generated by HDevelop for HALCON/DOTNET (C#) Version 10.0

//

// This file is intended to be used with the HDevelopTemplate or

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c#

using System;

using HalconDotNet;

public partial class HDevelopExport

{

public HTuple hv_ExpDefaultWinHandle;

// Main procedure

private void action()

{

// Local iconic variables

HObject ho_Image, ho_Region, ho_ConnectedRegions;

HObject ho_ModelRegion, ho_TemplateImage;

// Local control variables

HTuple hv_Width, hv_Height, hv_WindowsHandle=new HTuple();

HTuple hv_ModelId, hv_Number, hv_ModelRow, hv_ModelColumn;

HTuple hv_ModelAngle, hv_ModelScore, hv_MatchingObjIdx;

HTuple hv_HomMat=new HTuple();

// Initialize local and output iconic variables

HOperatorSet.GenEmptyObj(out ho_Image);

HOperatorSet.GenEmptyObj(out ho_Region);

HOperatorSet.GenEmptyObj(out ho_ConnectedRegions);

HOperatorSet.GenEmptyObj(out ho_ModelRegion);

HOperatorSet.GenEmptyObj(out ho_TemplateImage);

//dev_close_window(...);

ho_Image.Dispose();

HOperatorSet.ReadImage(out ho_Image, "d:/halconimage/hwxk-number.png");

HOperatorSet.GetImageSize(ho_Image, out hv_Width, out hv_Height);

//dev_open_window(...);

HOperatorSet.DispObj(ho_Image, hv_ExpDefaultWinHandle);

ho_Region.Dispose();

HOperatorSet.Threshold(ho_Image, out ho_Region, 0, 100);

ho_ConnectedRegions.Dispose();

HOperatorSet.Connection(ho_Region, out ho_ConnectedRegions);

ho_ModelRegion.Dispose();

HOperatorSet.SortRegion(ho_ConnectedRegions, out ho_ModelRegion, "upper_left",

"true", "column");

ho_TemplateImage.Dispose();

HOperatorSet.ReduceDomain(ho_Image, ho_ModelRegion, out ho_TemplateImage);

HOperatorSet.CreateShapeModel(ho_TemplateImage, 4, (new HTuple(0)).TupleRad()

, (new HTuple(360)).TupleRad(), (new HTuple(3.0317)).TupleRad(), (new HTuple("none")).TupleConcat(

"no_pregeneration"), "use_polarity", ((new HTuple(39)).TupleConcat(50)).TupleConcat(

4), 5, out hv_ModelId);

HOperatorSet.CountObj(ho_ModelRegion, out hv_Number);

//读取图片

ho_Image.Dispose();

HOperatorSet.ReadImage(out ho_Image, "d:/halconimage/hwxk-6.png");

HOperatorSet.GetImageSize(ho_Image, out hv_Width, out hv_Height);

//dev_open_window(...);

HOperatorSet.DispObj(ho_Image, hv_ExpDefaultWinHandle);

ho_Region.Dispose();

HOperatorSet.Threshold(ho_Image, out ho_Region, 0, 100);

ho_ConnectedRegions.Dispose();

HOperatorSet.Connection(ho_Region, out ho_ConnectedRegions);

ho_ModelRegion.Dispose();

HOperatorSet.SortRegion(ho_ConnectedRegions, out ho_ModelRegion, "upper_left",

"true", "column");

ho_TemplateImage.Dispose();

HOperatorSet.ReduceDomain(ho_Image, ho_ModelRegion, out ho_TemplateImage);

HOperatorSet.FindShapeModel(ho_Image, hv_ModelId, (new HTuple(0)).TupleRad(),

(new HTuple(360)).TupleRad(), 0.5, 0, 0.5, "least_squares", (new HTuple(4)).TupleConcat(

1), 0.75, out hv_ModelRow, out hv_ModelColumn, out hv_ModelAngle, out hv_ModelScore);

disp_message(hv_ExpDefaultWinHandle, hv_ModelScore, "window", 1, 1, "black",

"true");

for (hv_MatchingObjIdx=0; (int)hv_MatchingObjIdx<=(int)((new HTuple(hv_ModelScore.TupleLength()

))-1); hv_MatchingObjIdx = (int)hv_MatchingObjIdx + 1)

{

HOperatorSet.HomMat2dIdentity(out hv_HomMat);

HOperatorSet.HomMat2dRotate(hv_HomMat, hv_ModelAngle.TupleSelect(hv_MatchingObjIdx),

0, 0, out hv_HomMat);

HOperatorSet.HomMat2dTranslate(hv_HomMat, hv_ModelRow.TupleSelect(hv_MatchingObjIdx),

hv_ModelColumn.TupleSelect(hv_MatchingObjIdx), out hv_HomMat);

}

ho_Image.Dispose();

ho_Region.Dispose();

ho_ConnectedRegions.Dispose();

ho_ModelRegion.Dispose();

ho_TemplateImage.Dispose();

}

public void InitHalcon()

{

// Default settings used in HDevelop

HOperatorSet.SetSystem("do_low_error", "false");

}

public void RunHalcon(HTuple Window)

{

hv_ExpDefaultWinHandle = Window;

action();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: