机器视觉12-缺陷检测例子

1.案例:充电器镭雕字符缺陷检测  并显示NG/OK结果

 

#region namespace imports
using System;
using System.Collections;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using Cognex.VisionPro;
using Cognex.VisionPro.ToolBlock;
using Cognex.VisionPro3D;
using Cognex.VisionPro.PMAlign;
using Cognex.VisionPro.PatInspect;
using Cognex.VisionPro.Blob;
#endregion

public class CogToolBlockAdvancedScript : CogToolBlockAdvancedScriptBase
{
  #region Private Member Variables
  private Cognex.VisionPro.ToolBlock.CogToolBlock mToolBlock;
 
  //声明blob
  private CogBlobTool mBlob;
  //声明文本
  private CogGraphicLabel mLabel;
  #endregion

//GroupRun 方法

  public override bool GroupRun(ref string message, ref CogToolResultConstants result)
  {
     
    //映射blob
    mBlob = mToolBlock.Tools["CogBlobTool1"]as CogBlobTool;
    //遍历block工具
    foreach(ICogTool tool in mToolBlock.Tools)
      mToolBlock.RunTool(tool, ref message, ref result);
    //判断blob结果个数  创建对应文本内容
    if(mBlob.Results.GetBlobs().Count == 0)
    {
      mLabel = new CogGraphicLabel();
      mLabel.Color = CogColorConstants.Green;
      mLabel.SetXYText(200, 200, "Result:OK");
    }
    else
    {
    &n

### 使用Halcon实现基于机器视觉的PCB缺陷检测 #### 1. 基于C#和Halcon的PCB焊接质量检测方案 为了实现PCB板焊接质量检测,可以通过集成C#与Halcon完成整个流程的设计。此方法涵盖了从环境配置到具体代码实现的过程[^1]。在实际操作中,需注意不同PCB板设计可能导致图像处理参数的变化,因此应灵活调整。 以下是基本框架的一个简单示例: ```csharp using System; using HalconDotNet; class Program { static void Main(string[] args) { HObject ho_Image = null; // 定义输入图像对象 HTuple hv_Width = new HTuple(), hv_Height = new HTuple(); try { // 加载待检测的PCB图像 ho_Image = new HImage("path_to_pcb_image"); // 获取图像尺寸 ho_Image.GetImageSize(out hv_Width, out hv_Height); Console.WriteLine($"Image Size: {hv_Width} x {hv_Height}"); // 进行预处理(如灰度转换、滤波等) HObject ho_GrayImage = ho_Image.ConvertImage("gray_scale"); // 应用边缘检测或其他特征提取算法 HObject ho_EdgeImage = ho_GrayImageOperators.EdgesSubpix(ho_GrayImage, "gauss", 1, 30); // 显示结果或保存至文件 ho_EdgeImage.WriteImage("png", 1, "output_edge_image.png"); } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { if (ho_Image != null) ho_Image.Dispose(); } } } ``` 以上代码展示了如何加载一张PCB图片并对其进行初步处理,包括灰度化以及边缘检测[^1]。 #### 2. 频域分析的应用 对于更复杂的缺陷模式识别,可采用频域分析技术。这种方法特别适合用于周期性结构上的微小瑕疵探测,例如焊点缺失或者短路现象[^4]。通过傅里叶变换将空间数据转化为频率成分后再做进一步判断,能有效提升检测精度。 #### 3. 实际案例参考 有多个具体的实例可供学习借鉴,比如针对电路板短路/断路情况下的自动定位功能;或是利用模板匹配寻找特定位置是否存在目标物体等等[^3]。这些例子均体现了Halcon强大而灵活的功能特性,在面对多样化需求时表现出色。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值