【发布时间】:2015-01-06 03:59:53
【问题描述】:
我正在编写一个 2D gabor 内核,以便在图像中找到纹理方向。我已经阅读了两篇论文,两位作者都针对几乎相同的问题提出了两个不同的方程式,而且代码也不匹配。
这是论文 1 中的 gabor 核方程(第 1 页,||| 部分)..
这是论文 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。用欧拉式简化时,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
【问题讨论】:
标签: matlab image-processing filtering wavelet