嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 8 元微信扫码支付:8 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
开发环境:vs2022
halcon 23.0.5
海康提供的类;MVCamera.cs
实例化海康提供的类,获取图像,然后在halcon 中实现模板匹配。
自己做一个test.shm模板存储在debug文档中,就可以实现模板匹配。
1.定义相机对象,可以实现图像缩放平移,有些smartwindow 不稳定,可以换成Hwindcontrol控件显示
	 public Form1()
 {
     InitializeComponent();
     hwindow = hSmartWindowControl1.HalconWindow;//初始化窗口变量s
     w_width = hSmartWindowControl1.Size.Width;
     w_height = hSmartWindowControl1.Size.Height;
     this.MouseWheel  = new System.Windows.Forms.MouseEventHandler(this.my_MouseWheel);
     m_pDeviceList = new MyCamera.MV_CC_DEVICE_INFO_LIST();
     m_pMyCamera = new MyCamera();
     DeviceListAcq();
 }
2.设置相机,打开线程,开始自动取图
	private void btnCtinu_Click(object sender, EventArgs e)
{
    int nRet = m_pMyCamera.MV_CC_SetEnumValue_NET("TriggerMode", 0);
    if (nRet != MyCamera.MV_OK)
    {
        MessageBox.Show("Set TriggerMode Fail");
        return;
    }
    // ch:开启抓图 | en:start grab
     nRet = m_pMyCamera.MV_CC_StartGrabbing_NET();
    if (MyCamera.MV_OK != nRet)
    {
        MessageBox.Show("Start Grabbing Fail");
        return;
    }
    m_bGrabbing = true;
    Thread hReceiveImageThreadHandle = new Thread(ReceiveImageWorkThread);
    hReceiveImageThreadHandle.Start(m_pMyCamera);
}
2.转Halcon 格式图,实现模板匹配
	 HOperatorSet.Rgb1ToGray(i_mage, out ho_Image);
 
 try
 {
      HOperatorSet.DispObj(i_mage, ho_WHD);// ch 显示 || en: display
     // ho_WHD.DispObj(ho_Image);
     i_mage.Dispose();
     fn = fn   "/"   template   ".shm";
     fn = fn.Replace("\\", "/");//water gauge position
   
     HOperatorSet.ReadShapeModel(fn, out hv_ModelID);
     HOperatorSet.FindScaledShapeModel(ho_Image, hv_ModelID, 0, 6.29, 0.8, 1.0,
           0.5, 1, 0.5, "least_squares", 5, 0.8, out hv_Row, out hv_Column, out hv_Angle,
           out hv_Scale, out hv_Score);