我正在编码2D gabor内核,以便在图像中找到纹理方向。我一直在阅读两篇论文,两位作者都提出了两个不同的方程式来解决几乎相同的问题,而且代码也不匹配。
这是论文1(第1页,第|||节)中的gabor核方程式。
这是论文2(第3页,等式1)中的核方程式
问题: 1 。这两个方程是否简化为一个结果?我尝试过,但无法实现这种简化。
2 。这是论文1作者过滤的代码片段。
for theta = 90+1:angleInterval:angleRange-angleInterval+1+90
tmpTheta = (theta - 1)*pi/180;
for y= -halfKerSize:halfKerSize
ySinTheta = y*sin(tmpTheta);
yCosTheta = y*cos(tmpTheta);
for x=-halfKerSize:halfKerSize
xCosTheta = x*cos(tmpTheta);
xSinTheta = x*sin(tmpTheta);
a = xCosTheta+ySinTheta;
b = -xSinTheta+yCosTheta;
oddKernel(y+halfKerSize+1,x+halfKerSize+1,(theta - 1-90)/angleInterval+1) = exp(tmpDelta*(4*a*a+b*b))*(sin(c*a)-exp(-cc*cc/2));
evenKernel(y+halfKerSize+1,x+halfKerSize+1,(theta - 1-90)/angleInterval+1) = exp(tmpDelta*(4*a*a+b*b))*(cos(c*a)-exp(-cc*cc/2));
end
end
end
在代码中,没有提到w /(sqrt(2 * pi)* c ......核心方程式文件1中的'w'。
第3 即可。当用Euler的表达式简化时,exp(iaw)将变为cos(aw)+ i * sin(aw),所以不应该是方程式,
evenKernal = w /(sqrt(2 * pi)* c)* exp(-w ^ 2(4a ^ 2 + b ^ 2)/ 8 * c ^ 2)*(cos(aw) - exp( - C ^ 2/2))
oddKernel = w /(sqrt(2 * pi)* c)* exp(-w ^ 2(4a ^ 2 + b ^ 2)/ 8 * c ^ 2)*(sin(aw))?
这不是我在代码中看到的。
论文1:http://web.mit.edu/huikong/www/publications_files/TIP10b.pdf
论文2:http://www.vision.caltech.edu/html-files/EE148-2005/uploads/Rasmussen04Grouping.pdf
答案 0 :(得分:0)
等式1和等式2是相同的。你正准备在等式1中扩展想象项。
通过单独清除每个术语(我希望这里有tex符号来覆盖所有内容),您应该获得以下等效替换:
1)w = 2 * pi / lambda
2)lambda =(2 * pi)/(sqrt(2 * pi * c))
3)sigma = sqrt(c / pi);
一旦看到相似之处,你的问题的第2和第3部分应该很容易理解。