halcon 将数据保存到excel_halcon-读取表格内容

这篇博客展示了如何使用Halcon的C#版本读取图像并进行阈值处理,连接操作,然后将结果保存到Excel。通过示例代码,解释了如何选取和显示特定形状,并对窗口进行操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//

// 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 System.Windows.Forms;

using HalconDotNet;

public partial class HDevelopExport

{

public HTuple hv_ExpDefaultWinHandle;

public void HDevelopStop()

{

MessageBox.Show("Press button to continue", "Program stop");

}

// Main procedure

private void action()

{

// Local iconic variables

HObject ho_Image, ho_RegionTable, ho_ConnectedRegionsTable;

HObject ho_SingleWord=null, ho_Rectangle=null, ho_ImageReduced=null;

HObject ho_DupImage=null, ho_RegionNumber, ho_ConnectedRegionsNumber;

HObject ho_SortedRegionsNumber;

// Local control variables

HTuple hv_Width, hv_Height, hv_Number, hv_Index;

HTuple hv_Row=new HTuple(), hv_Column=new HTuple(), hv_Phi=new HTuple();

HTuple hv_Length1=new HTuple(), hv_Length2=new HTuple();

// Initialize local and output iconic variables

HOperatorSet.GenEmptyObj(out ho_Image);

HOperatorSet.GenEmptyObj(out ho_RegionTable);

HOperatorSet.GenEmptyObj(out ho_ConnectedRegionsTable);

HOperatorSet.GenEmptyObj(out ho_SingleWord);

HOperatorSet.GenEmptyObj(out ho_Rectangle);

HOperatorSet.GenEmptyObj(out ho_ImageReduced);

HOperatorSet.GenEmptyObj(out ho_DupImage);

HOperatorSet.GenEmptyObj(out ho_RegionNumber);

HOperatorSet.GenEmptyObj(out ho_ConnectedRegionsNumber);

HOperatorSet.GenEmptyObj(out ho_SortedRegionsNumber);

//dev_close_window(...);

ho_Image.Dispose();

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

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

//dev_open_window(...);

HOperatorSet.DispObj(ho_Image, hv_ExpDefaultWinHandle);

//閫夋嫨琛ㄦ牸

ho_RegionTable.Dispose();

HOperatorSet.Threshold(ho_Image, out ho_RegionTable, 100, 216);

ho_ConnectedRegionsTable.Dispose();

HOperatorSet.Connection(ho_RegionTable, out ho_ConnectedRegionsTable);

//select_shape (ConnectedRegionsTable, rectangularityTable, 'rectangularity', 'and', 0, 500)

HOperatorSet.CountObj(ho_ConnectedRegionsTable, out hv_Number);

for (hv_Index=1; hv_Index.Continue(hv_Number, 1); hv_Index = hv_Index.TupleAdd(1))

{

HOperatorSet.ClearWindow(hv_ExpDefaultWinHandle);

ho_SingleWord.Dispose();

HOperatorSet.SelectObj(ho_ConnectedRegionsTable, out ho_SingleWord, hv_Index);

HOperatorSet.SmallestRectangle2(ho_SingleWord, out hv_Row, out hv_Column, out hv_Phi,

out hv_Length1, out hv_Length2);

ho_Rectangle.Dispose();

HOperatorSet.GenRectangle2(out ho_Rectangle, hv_Row, hv_Column, hv_Phi, hv_Length1,

hv_Length2);

ho_ImageReduced.Dispose();

HOperatorSet.ReduceDomain(ho_Image, ho_Rectangle, out ho_ImageReduced);

//dev_get_window(WindowHandle)

HOperatorSet.DispObj(ho_Image, hv_ExpDefaultWinHandle);

dev_resize_window_fit_image(ho_Image, 0, 0, -1, -1);

//dev_open_window(...);

//dev_get_window(WindowHandle2)

ho_DupImage.Dispose();

HOperatorSet.CopyImage(ho_ImageReduced, out ho_DupImage);

//

HDevelopStop();

}

//閫夋嫨鏁板瓧

HOperatorSet.ClearWindow(hv_ExpDefaultWinHandle);

ho_RegionNumber.Dispose();

HOperatorSet.Threshold(ho_Image, out ho_RegionNumber, 0, 99);

ho_ConnectedRegionsNumber.Dispose();

HOperatorSet.Connection(ho_RegionNumber, out ho_ConnectedRegionsNumber);

ho_SortedRegionsNumber.Dispose();

HOperatorSet.SortRegion(ho_ConnectedRegionsNumber, out ho_SortedRegionsNumber,

"upper_left", "true", "column");

HOperatorSet.CountObj(ho_SortedRegionsNumber, out hv_Number);

for (hv_Index=1; hv_Index.Continue(hv_Number, 1); hv_Index = hv_Index.TupleAdd(1))

{

HOperatorSet.ClearWindow(hv_ExpDefaultWinHandle);

ho_SingleWord.Dispose();

HOperatorSet.SelectObj(ho_SortedRegionsNumber, out ho_SingleWord, hv_Index);

HOperatorSet.DispObj(ho_SingleWord, hv_ExpDefaultWinHandle);

HDevelopStop();

}

ho_Image.Dispose();

ho_RegionTable.Dispose();

ho_ConnectedRegionsTable.Dispose();

ho_SingleWord.Dispose();

ho_Rectangle.Dispose();

ho_ImageReduced.Dispose();

ho_DupImage.Dispose();

ho_RegionNumber.Dispose();

ho_ConnectedRegionsNumber.Dispose();

ho_SortedRegionsNumber.Dispose();

}

public void InitHalcon()

{

// Default settings used in HDevelop

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

}

public void RunHalcon(HTuple Window)

{

hv_ExpDefaultWinHandle = Window;

action();

}

}

标签:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值