儿童 网站模板,如何做本地门户网站,网站系统维护中,自己做手机网站经历上一篇《零基础小白实现C#调用halcon dll的过程#xff0c;并测试程序证明C#halcon联合开发成功》的发布已经过去三天啦#xff0c;
零基础小白实现C#调用halcon dll的过程#xff0c;并测试程序证明C#halcon联合开发成功_添加halcondotnet.dll-CSDN博客 在友友的催更下… 经历上一篇《零基础小白实现C#调用halcon dll的过程并测试程序证明C#halcon联合开发成功》的发布已经过去三天啦
零基础小白实现C#调用halcon dll的过程并测试程序证明C#halcon联合开发成功_添加halcondotnet.dll-CSDN博客 在友友的催更下我将用我花2W以及四个月时间的所学后面将全无保留的为大家更新C#与Halcon的学习之路也是记录我的学习之路记录后面大四上学期培训生活望有CSDN机器视觉圈的有成之士能做下我的伯乐。 我时常在想有没有必要去做这么一件事。我想的是学完再更新但是看到网上资料较少鱼龙混杂课程也不规范你们对于这些资料也无从下手学着难学着深奥学不会、等等问题。 我看到这些情况真的于心不忍痛下心后面慢慢更新我希望我的保姆教程胎儿级教程、热情和热血会点亮一些人让你们在这段学习中有所帮助更加清晰的了解到这个机器视觉的行业。所有文章将以保姆级或者胎儿级教程来更新。 你的点赞、关注与支持是我更新下去的最大动力。
正文 下面我将详细介绍关于保姆级-C#与Halcon的窗体界面展示阈值分割图像教程将一步步指导你如何使用 C# 和 Halcon 库创建一个简单的 Windows 窗体应用程序并在该界面中显示经过阈值分割处理的图像。当然以下保姆级教程相信每一个小白都能听懂都能做出自己想要的阈值分割图像教程。
这个教程特别适合初学者内容详细且易于理解。
先展示一下阈值分割结果展示图 前期准备 安装 Visual Studio确保你已经安装了 Visual Studio并选择了适用于 C# 开发的组件。 安装 Halcon下载并安装 Halcon。安装完成后确保 Halcon 的库文件如 HalconDotNet.dll已正确配置到你的开发环境中。 安装网上教程很多这里就不过多赘述未配置Halcon 的库文件如 HalconDotNet.dll参考下面零基础小白实现C#调用halcon dll的过程的教程也是胎儿级版本 零基础小白实现C#调用halcon dll的过程并测试程序证明C#halcon联合开发成功-CSDN博客
第一步创建 C# Windows Forms 项目 启动 Visual Studio创建一个新的“Windows Forms 应用程序”项目。 2.命名项目如 HalconThresholdDemo(遵循C语言文件命名规范)并选择保存路径尽量自己单独建一个文件夹便于查看和后面理解)。 Form1 是类
Program.cs是程序入口也是Main函数 ,界面就是这样 第二步了解窗体界面
这个边框是工具箱和属性如若没有:最上面的视图 -工具箱即可还没有则拉侧边 鼠标左键拉出来。工具箱有窗体所需的工具常用的有小黑窗体按钮Button ,文字TextBox等 第三步设计窗体界面
1.在设计界面时我们需要几个基本的控件
两个 HWindowControl 控件用于显示原始图像和分割后的图像。没有这个控件需要将下图的halcondotnet.dll拖到工具箱中随在拖哪里都可以会自动生成HWindowControl 和HSmartWindowControl点击工具箱中的HWindowControl 箭头的里面 点击工具箱中的HWindowControl 将HWindowControl 控件这里叫他小黑窗体拖到Form2窗体中建立两个HWindowControl 控件这里叫他小黑窗体一个用于显示原始图像一个用于显示阈值分割后的图像。 注意两个窗体名字都要改小黑窗体1的Name改为:hWindowControl_yuanshi 小黑窗体2的Name改为:hWindowControl_threson 一个按钮 (Button) 用于读取图像, 点击工具箱-点击Button-移动鼠标至拖到Form2窗体中用于建立点击的按钮。设置框体按钮Name名字为button_readImage 框中文字Text:读取图片 ①两个文本信息 (Label) 用于解释后面文本框的最大和最小灰度值。 ②两个文本框 (TextBox) 用于输入最大和最小灰度值。最大灰度输入的Name命名为 textBox_Maxgunrun 最小灰度输入的Name命名为textBox_Mingunrun 另一个按钮 (Button) 用于执行阈值分割。按钮 (Button)的Name命名为button_yuzhifenge 框中文字Text:阈值分割 2.注意
就是你有可能会在上面的操作中点到窗体的控件进入代码了不要慌不要慌莫紧张下面来跟着操作点击Form2.cs[设计] 即可重新返回白色窗体界面。
第四步编写代码
当然你们有疑问我们那如何进入代码呢跟着来操作 我们点击这个框时代码中会自动生成关于按钮点击事件其他的也是一样的会生成事件。button_readImage_Click: 处理读取图像的按钮点击事件。 在 Form1.cs 中添加以下代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using HalconDotNet;namespace YJH1 //命名空间 包含这个程序所有代码
{public partial class Form1 : Form //class Form1 类继承了From 代表Windows窗体。{public Form1() //类的构造函数{InitializeComponent(); //初始化窗体组件按钮 文本等}private void label1_Click(object sender, EventArgs e){}private void hWindowControl_yuanshi_HMouseMove(object sender, HalconDotNet.HMouseEventArgs e){}/// summary/// 图片的成员变量 // 程序里有两个私有成员变量ho_image 和 MinGray、 MaxGray分别用来保存读取图像数据和灰度阈值的范围/// /summaryprivate HObject ho_image;//处理读取图像的按钮点击事件private void button_readImage_Click(object sender, EventArgs e){//从指定路径读取图像、并将图像数据保存在ho_image中HOperatorSet.ReadImage(out ho_image, D:\\VisualStudio\\yujiahong1\\图片\\邓紫棋.png);HTuple width, height;//获取图像的宽度和高度并将他们保存在width和height 变量中。HOperatorSet.GetImageSize(ho_image, out width, out height);//设置显示图像的区域这里设置成显示整个图像HOperatorSet.SetPart(hWindowControl_yuanshi.HalconWindow,0, 0, height - 1, width - 1);//显示(将图像显示在窗体上的控件(即定义的hWindowControl_yuanshi)中)HOperatorSet.DispObj(ho_image, hWindowControl_yuanshi.HalconWindow);}// 这里提一下HTuple是通用的数据容器不同类型的数据皆可存储(如int、double、string 等)HTuple MinGray;HTuple MaxGray;//处理阈值分割的按钮点击事件private void button_yuzhifenge_Click(object sender, EventArgs e){//ifho_image null检查是否已经读取了图像如果没有读取到图像就自动调用读取图像的按钮事件if (ho_image null){button_readImage_Click(null, null);}//设置颜色//HOperatorSet.SetColorMaxGray int.Parse(textBox_Maxgunrn.Text);MinGray int.Parse(textBox_Mingunrun.Text);HObject Region;//对图像进行阈值分割HOperatorSet.Threshold(ho_image, out Region, MinGray, MaxGray);HTuple width, height;HOperatorSet.GetImageSize(ho_image, out width, out height);//窗体句柄设置显示范围HOperatorSet.SetPart(hWindowControl_threson.HalconWindow, 0, 0, height - 1, width - 1);//分割下来的图像显示在hWindowControl_threson控件中HOperatorSet.DispObj(Region,hWindowControl_threson.HalconWindow) ;}private void textBox_Mingunrun_TextChanged(object sender, EventArgs e){}private void Form1_Load(object sender, EventArgs e){}}
} 1.代码中注意的点就是编写代码图片时可能网上下载的图片不太支持读取识别报错这个是因为图片大小问题选择你的图片截屏发到微信或者QQ,保存到文件路径中即可一般图片用.png 2。注意的是 灰度识别中的阈值分割图片用灰度图更好。
第五步运行程序
构建并运行项目。点击“读取图像”按钮选择图像文件。在文本框中输入阈值范围的最小和最大灰度值代码里面自动设置了范围的若要更改请阈值范围在点击读取图像前更改。 点击“阈值分割”按钮查看分割后的图像。 总结 通过此次保姆级教程你已经创建了一个基本的 C# Windows 窗体应用程序它能够读取图像并在界面中展示原始图像和阈值分割后的图像。这是机器视觉应用中的一个重要基础未来你可以基于此扩展更多功能比如对象检测、边缘检测等。
上图是博主C#与Halcon的梦幻联动成功的截图需要源代码或文件的可以主页找博主分享给一路学习一路奋进的你们。
我相信你们的点赞、关注和评论是支持我前进的最大动力我会在这里更新我的学习之路希望我的学习路程会对你们有一定帮助。