视觉通用框架源码 C #联合Halcon开发的 根据visionpro 编写缺陷检测定位拉控件式。 HALCON 是最强的视觉处理软件在视觉处理领域有一个超酷的组合那就是C#联合Halcon来开发视觉通用框架而且这个框架还是参考visionpro编写的主打缺陷检测和定位还采用了拉控件式的便捷操作方式。今天咱就来唠唠这个有意思的开发过程。Halcon视觉处理界的王者首先得说说Halcon它号称是最强的视觉处理软件这可不是吹的。Halcon拥有丰富且强大的算子库无论是图像滤波、边缘检测还是复杂的模式匹配等任务它都能轻松应对。比如在缺陷检测中我们可能会用到它的edgessubpix算子来进行高精度的边缘提取。// 假设已经在Halcon环境中加载了图像 HTuple hv_Image; HOperatorSet.ReadImage(out hv_Image, your_image_path); HTuple hv_Edges; HOperatorSet.EdgesSubPix(hv_Image, out hv_Edges, canny, 2, 20, 40);在这段代码里ReadImage函数用于读取图像将图像数据存储在hv_Image中。然后EdgesSubPix算子以canny算法为基础对图像进行亚像素级别的边缘提取2代表边缘检测的阈值20和40分别是低阈值和高阈值。通过调整这些参数可以得到不同效果的边缘图像这对于缺陷检测中准确获取缺陷边缘至关重要。C#与Halcon的强强联合为啥要把C#和Halcon结合呢C#有着优秀的面向对象编程特性开发效率高而且能方便地构建用户界面。当它和Halcon携手就能充分发挥各自的优势。视觉通用框架源码 C #联合Halcon开发的 根据visionpro 编写缺陷检测定位拉控件式。 HALCON 是最强的视觉处理软件在基于拉控件式的开发中我们可以在C#的WinForms或者WPF项目里通过拖放控件来快速搭建视觉处理的交互界面。比如说我们可以放置一个按钮控件点击按钮来触发Halcon的图像处理操作。private void btnProcess_Click(object sender, EventArgs e) { HTuple hv_Image; HOperatorSet.ReadImage(out hv_Image, your_image_path); // 进行一系列Halcon处理操作 HTuple hv_Result; // 这里假设进行一个简单的二值化处理 HOperatorSet.Threshold(hv_Image, out hv_Result, 128, 255); // 显示处理结果这里假设已经有一个用于显示图像的控件 HWindowControl1.HalconWindow.DispObj(hv_Result); }在这段代码里当按钮btnProcess被点击首先读取图像然后使用Threshold算子进行二值化处理将灰度值在128到255之间的像素设置为前景其余为背景。最后通过HWindowControl1这个控件来显示处理后的图像。缺陷检测与定位的实现在这个视觉通用框架里缺陷检测和定位是核心功能。利用Halcon的强大算法我们可以实现高精度的缺陷检测。比如对于一些表面缺陷我们可以通过模板匹配的方式来定位缺陷位置。HTuple hv_Template, hv_SearchImage; HOperatorSet.ReadImage(out hv_Template, template_image_path); HOperatorSet.ReadImage(out hv_SearchImage, search_image_path); HTuple hv_MatchResult; HOperatorSet.FindShapeModel(hv_SearchImage, hv_Template, 0, Math.PI, 0.5, 1, 0.5, least_squares, 0, 0.5, out hv_MatchResult); // 分析匹配结果获取缺陷位置 if (hv_MatchResult.Length 0) { // 这里简单获取第一个匹配结果的位置 HTuple row, col; HOperatorSet.GetShapeModelContours(out HTuple contours, hv_Template, 1); HOperatorSet.AreaCenter(contours, out HTuple area, out row, out col); // 在图像上标记缺陷位置假设已经有显示图像的控件 HWindowControl1.HalconWindow.DispCross(row, col, 10, 0); }在这段代码中首先读取模板图像和待检测的搜索图像。然后使用FindShapeModel算子在搜索图像中寻找与模板图像匹配的区域。如果找到了匹配结果通过GetShapeModelContours和AreaCenter获取匹配区域的中心位置并在图像上用十字标记出缺陷位置。通过C#联合Halcon开发的这个视觉通用框架无论是对于工业生产中的质量检测还是其他需要视觉处理的场景都有着极大的应用潜力希望今天分享的这些能给大家在相关开发中带来一些启发。
探索C#联合Halcon打造视觉通用框架源码之路
视觉通用框架源码 C #联合Halcon开发的 根据visionpro 编写缺陷检测定位拉控件式。 HALCON 是最强的视觉处理软件在视觉处理领域有一个超酷的组合那就是C#联合Halcon来开发视觉通用框架而且这个框架还是参考visionpro编写的主打缺陷检测和定位还采用了拉控件式的便捷操作方式。今天咱就来唠唠这个有意思的开发过程。Halcon视觉处理界的王者首先得说说Halcon它号称是最强的视觉处理软件这可不是吹的。Halcon拥有丰富且强大的算子库无论是图像滤波、边缘检测还是复杂的模式匹配等任务它都能轻松应对。比如在缺陷检测中我们可能会用到它的edgessubpix算子来进行高精度的边缘提取。// 假设已经在Halcon环境中加载了图像 HTuple hv_Image; HOperatorSet.ReadImage(out hv_Image, your_image_path); HTuple hv_Edges; HOperatorSet.EdgesSubPix(hv_Image, out hv_Edges, canny, 2, 20, 40);在这段代码里ReadImage函数用于读取图像将图像数据存储在hv_Image中。然后EdgesSubPix算子以canny算法为基础对图像进行亚像素级别的边缘提取2代表边缘检测的阈值20和40分别是低阈值和高阈值。通过调整这些参数可以得到不同效果的边缘图像这对于缺陷检测中准确获取缺陷边缘至关重要。C#与Halcon的强强联合为啥要把C#和Halcon结合呢C#有着优秀的面向对象编程特性开发效率高而且能方便地构建用户界面。当它和Halcon携手就能充分发挥各自的优势。视觉通用框架源码 C #联合Halcon开发的 根据visionpro 编写缺陷检测定位拉控件式。 HALCON 是最强的视觉处理软件在基于拉控件式的开发中我们可以在C#的WinForms或者WPF项目里通过拖放控件来快速搭建视觉处理的交互界面。比如说我们可以放置一个按钮控件点击按钮来触发Halcon的图像处理操作。private void btnProcess_Click(object sender, EventArgs e) { HTuple hv_Image; HOperatorSet.ReadImage(out hv_Image, your_image_path); // 进行一系列Halcon处理操作 HTuple hv_Result; // 这里假设进行一个简单的二值化处理 HOperatorSet.Threshold(hv_Image, out hv_Result, 128, 255); // 显示处理结果这里假设已经有一个用于显示图像的控件 HWindowControl1.HalconWindow.DispObj(hv_Result); }在这段代码里当按钮btnProcess被点击首先读取图像然后使用Threshold算子进行二值化处理将灰度值在128到255之间的像素设置为前景其余为背景。最后通过HWindowControl1这个控件来显示处理后的图像。缺陷检测与定位的实现在这个视觉通用框架里缺陷检测和定位是核心功能。利用Halcon的强大算法我们可以实现高精度的缺陷检测。比如对于一些表面缺陷我们可以通过模板匹配的方式来定位缺陷位置。HTuple hv_Template, hv_SearchImage; HOperatorSet.ReadImage(out hv_Template, template_image_path); HOperatorSet.ReadImage(out hv_SearchImage, search_image_path); HTuple hv_MatchResult; HOperatorSet.FindShapeModel(hv_SearchImage, hv_Template, 0, Math.PI, 0.5, 1, 0.5, least_squares, 0, 0.5, out hv_MatchResult); // 分析匹配结果获取缺陷位置 if (hv_MatchResult.Length 0) { // 这里简单获取第一个匹配结果的位置 HTuple row, col; HOperatorSet.GetShapeModelContours(out HTuple contours, hv_Template, 1); HOperatorSet.AreaCenter(contours, out HTuple area, out row, out col); // 在图像上标记缺陷位置假设已经有显示图像的控件 HWindowControl1.HalconWindow.DispCross(row, col, 10, 0); }在这段代码中首先读取模板图像和待检测的搜索图像。然后使用FindShapeModel算子在搜索图像中寻找与模板图像匹配的区域。如果找到了匹配结果通过GetShapeModelContours和AreaCenter获取匹配区域的中心位置并在图像上用十字标记出缺陷位置。通过C#联合Halcon开发的这个视觉通用框架无论是对于工业生产中的质量检测还是其他需要视觉处理的场景都有着极大的应用潜力希望今天分享的这些能给大家在相关开发中带来一些启发。