halcon/C++模板匹配

2021-07-29  本文已影响0人  寽虎非虫003

说明

参考网页

【Halcon】 模板匹配 create_template 与 fast_match_mg

//图片句柄
    Hobject Image,Image2,Image_Temp,Image_Temp2;
    
    //区域句柄
    Hobject Image_ROI;
    
    //整型数据:Pointer指向图片数据区域,Width,Height表示图片宽度和高度,WindowHandle表示窗口的地址
    Hlong WindowHandle;
    
    //模板ID
    Hlong templateID,Numball;
    
    //匹配结果
    Hobject MatchID,ballRIO,ballMage;
    
    //二次匹配的模板结果
    HTuple m_Row,m_Column,m_Error;
    
    
    //从硬盘读取图像,保存到变量中
    read_image (&Image,"C:/3.PNG");
    
    //读取图像,用于创建模板
    read_image (&Image_Temp, "C:/7.PNG");
    
    //设置模板区域位置和大小,Row是X,col是Y
    gen_rectangle1(&Image_ROI,110,305,158,353);
    
    //从图像中截取模板区域
    reduce_domain(Image_Temp,Image_ROI,&Image_Temp2);
    
    //从图像创建模板
    create_template(Image_Temp2,5,4,"sort","original",&templateID);
    
    
    //快速匹配,最大容许误差,计算速度等级
    fast_match_mg(Image,&MatchID,templateID,20,3);
    
    //拆分区域
    connection(MatchID,&ballRIO);
    
    //统计个数  
    count_obj(ballRIO,&Numball);
    
    //在区域中填入图像数据,用于二次查找
    add_channels(ballRIO,Image,&ballMage);
    
    //优化的模板匹配   
    best_match(ballMage,templateID,20,"true",&m_Row,&m_Column,&m_Error);
    
    
    //绘制原来的图片
    WindowHandle = ShowPicture(Image);
    
    
    //绘制结果,减13是因为图片大小是26*26 
    disp_rectangle1(WindowHandle,m_Row-24,m_Column-24,m_Row+24,m_Column+24);
    
    
    //清除模板,释放内存
    clear_template(templateID);

C++实现并修改

效果展示

上一篇下一篇

猜你喜欢

热点阅读