嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们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);