Closed ujsyl closed 1 year ago
明白了,谢谢您的回答! 我使用halcon的灰度模板匹配和您的方法测试了一组样本,匹配目标:x\y\r相对于halcon偏差都在±0.6以内。 测试结果发现第12组样本偏差最大,另外有4组也存在不同程度超过规格的偏差,第12组halcon匹配(x\y\R):464.358\150.187\201.835,当前方法结果:464.464\149.02\202.016(ps:为了和halcon保持一致,我把角度转换到0-360区间),坐标X相差了0.106个像素,坐标Y相差了1.167个像素,角度相差了0.181度,Y相差较大。 sir,我还没分析出来,不知道哪里出了偏差,您能否帮忙分析下,感恩! 测试样本及匹配结果在附件里
明白了,谢谢您的回答! 我使用halcon的灰度模板匹配和您的方法测试了一组样本,匹配目标:x\y\r相对于halcon偏差都在±0.6以内。 测试结果发现第12组样本偏差最大,另外有4组也存在不同程度超过规格的偏差,第12组halcon匹配(x\y\R):464.358\150.187\201.835,当前方法结果:464.464\149.02\202.016(ps:为了和halcon保持一致,我把角度转换到0-360区间),坐标X相差了0.106个像素,坐标Y相差了1.167个像素,角度相差了0.181度,Y相差较大。 sir,我还没分析出来,不知道哪里出了偏差,您能否帮忙分析下,感恩! 测试样本及匹配结果在附件里
------------------ 原始邮件 ------------------ 发件人: "DennisLiu1993/Fastest_Image_Pattern_Matching" @.>; 发送时间: 2023年2月22日(星期三) 凌晨1:17 @.>; @.**@.>; 主题: Re: [DennisLiu1993/Fastest_Image_Pattern_Matching] 请教关于code中关于亚像素的问题 (Issue #30)
那些if都是用來防止crash的,現在計算的score map是3*3的大小,要是最高分不在中心,就沒辦法套論文的做法
theta是從vec取的,是取到delta沒錯
因為要以最高分當中心點
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>
的確會有誤差 Cognex和Halcon肯定有做一些特殊處裡,演算法也不是完全一樣 我覺得可以嘗試: 先用MinReducedArea計算出金字塔層數,再把Source長寬Padding到pow(2, 層數) 這樣buildParamid()的時候就不會出現少半個像素的問題 例如: width =110->55->(27)27.5
但只是猜測
Ok,我试一下
在亚像素估计函数SubPixEsimation中有一句代码为 matS.at(iRow, 0) = (vec)[iMaxScoreIndex + (theta - 1)].vecResult[x + 1][y + 1]; theta是从0-2,这样的话iMaxScoreIndex 只能为1,要不然越界。 不太明白的地方: 1.如果最佳匹配点是iMaxScoreIndex=0或者2,对应的x\y\angle是没有做亚像素计算的,这个怎么解 2.看了您提供的论文,theta的循环的步长是±deleta,您代码是1,这里的考量是什么 3.(vec)[iMaxScoreIndex + (theta - 1)].vecResult[x + 1][y + 1] 这句代码中,为什么是角度加上iMaxScoreIndex?