首先关于c#与halcon的联合在上一期已经讲了这一期就不赘述了,下面进入正题
1.首先要打开visual studio创建一个新的windows 窗体应用,将其命名为FromTest用于代码测试
2.在窗体内创建两个button与一个hWindowControl用于功能运行,测试,将第一个button的name改为button_read,text改为测试自己封装的ReadImage或者自己取一个名字,第二个button的name改为button_threshold,text改为测试阈值分割用或者自己取一个名字,hWindowControl的名字改为hWindowControl_yuanshi。
3.双击button_read创建点击事件,如果文件夹图片正确则将图片显示在hWindowControl_yuanshi上,如果不正确则会显示"Algorithm.Imagehelper.ReadImage 失败"
private void button_read_Click(object sender, EventArgs e)
{
string filename = "C:\\Users\\Administrator\\c#\\第二次周测\\第二次周测\\bin\\Debug\\1号图.png";*********这里的图片选择自己电脑上的都可以
bool result = Algorithm.Imagehelper.ReadImage(out ho_image, filename, hWindowControl_yuanshi.HalconWindow);
if (result != true)
{
MessageBox.Show("Algorithm.Imagehelper.ReadImage 失败");
}
进行阈值分割的前提是读取图片,这一步测试很有必要
再创建一个Imagehelper的类进行实现,将空间名改为Algorithm
以下是本人的运行结果:
现在可以成功读取图片,也就可以顺利进行阈值分割与自动阈值分割的包装与测试了。
4.双击button_threshold创建点击事件,先将上一步读取图片的步骤放上去
再对里面需要的参数进行封装,新建一个thresholdDef.cs也将空间名改为Algorithm好被调用,首先用枚举进行定义,将几个函数封装
然后在class thresholdDef中进行定义
封装完成后转回Imagehelper.cs对封装进行调用
最后回到FormTest.cs中对button_threshold_Click点击事件进行补充
最后右击项目属性将输出类型改为控制台应用程序,运行FormTest进行测试
这时会弹出两个窗口
点击测试阈值分割用会显示以下内容
若要用普通阈值分割可将FormTest.cs中的代码改为:
进行调用,结果如下:
5. 总结
通过将阈值分割和自动阈值分割封装到一个函数中,我们不仅简化了图像处理的过程,还提高了代码的可读性和重用性。这种设计模式在处理图像时非常实用,适用于各种场景的图像分析任务。希望本文能对你的图像处理工作有所帮助!