kellygod
kellygod

补充 测试平台 vs2017 avx2 + openmp 测试ROI基本一致
在旋转的时候, halcon能找到 line2dup找不到 有交叉线就是line2dup找到的 ,没旋转前都可以找到,旋转后 line2dup找不到   
angle 0-360 angle-step 0.5 scale 1
[Images.zip](https://github.com/meiqua/shape_based_matching/files/5129641/Images.zip) 测试图片
很强 角度测试 我没按照test调直接根据以前经验设置了,回头研究一下相关参数具体含义。
 有个几个疑问想请教一下 1.像上图,绿色区域为注册模板图区域,区域位置轻微变动为什么会影响到特征点选取,就感觉特征点不在边缘像素旁边 2.与halcon对比后基本可以确定,在使用angle_step=0.1确实比halcon快,但 可能是由于openmp的线程初始化问题,算法时间的波动跳跃会比halcon的高一点点,整体还是比halcon快。angle_step 360) f_new.theta -= 360; while (f_new.theta < 0) f_new.theta += 360; f_new.label = int(f_new.theta * 16 / 360 + 0.5f); f_new.label &= 7; tp[l].features.push_back(f_new); tp[l].angle...
在定位领域,除了需要知道位置,还需要知道当前形状对应的角度,看到源代码没加, 我就自己给Template加上角度了主要是给Match后,可通过Match得到 x y angle 三个关键参数
这种旋转方式不支持多尺度旋转,如果需要不同尺度需要额外处理,否则会找不到形状
总结:低精度快速模板定位line2dup-fusion完胜halcon 图片:1920*1200 roi 530 * 530 halcon参数:CreateShapeModel(hv_modelObj, 3, HTuple(0]).TupleRad(), HTuple(360]).TupleRad(), "auto", "auto", "use_polarity", “auto”, "auto", &hv_ModelID); FindShapeModel(hv_srcObj, hv_ModelID, HTuple(0]).TupleRad(), HTuple(360]).TupleRad(), 0.7, 1, 0, "least_squares", 4, 0.9, &hv_PosY, &hv_PosX, &hv_PosAngle, &hv_Score);...