调谐Gabor滤波器

时间:2015-12-16 23:49:10

标签: matlab image-processing filtering wavelet

我正试图在嘈杂的垂直堆叠层的图片中寻找病理 与Gabor过滤。对于每一列,我认为左边和右边有10个像素的neigborhood,并用gabor内核过滤图像的一部分。然后我采用frobenious规范,这样我每列都有一个标量值。

以下是我使用下面发布的图片的结果。对我来说,似乎违反直觉 0度的响应远高于45度的响应。

Gabor Results

但是满足了期望的效果,这意味着我可以陈述一种条件,使得使用0度的值低于45度的值来击中第300列附近的病理。 我反过来预计或者我的形象太吵了?

所以我的问题是:如何优化参数 lambda gamma ,以便在垂直堆叠层的结构最大化时实现效果最大化破碎?(在图290-320周围的图片中间)

当我尝试更改参数时,我得到了太多误报,以至于我无法再区分了。

0度的值如何大于45度的滤波器响应?对我来说,考虑到这个图像似乎很奇怪。

=====

这是图片

Image with small pathology in the mid

这是我的代码

windowRadius = 10;
bw = 1;
for k=0:23
   theta(k+1)= k*pi/12;
end
psi     = [0 pi/2];
lambda  = 8; % std value 8
gamma   = 0.5; % std value 0.5
for colIndx=1: size(Img,2)
   if colIndx-windowRadius < 1
       left = 1;
   else
       left = colIndx - windowRadius;
   end

   if colIndx+windowRadius > size(Img,2)
       right = size(Img,2);
   else
       right = colIndx + windowRadius;
   end

   for i=1:length(theta)
       gb{i} = gabor_fn(bw,gamma,psi(1),lambda,theta(i)) ...
          + 1i * gabor_fn(bw,gamma,psi(2),lambda,theta(i));
   end

   gabor_out0deg{colIndx} = imfilter(Img(:, left : right),gb{1},'symmetric');
   gabor_out45deg{colIndx} = imfilter(Img(:, left : right),gb{4},'symmetric');
   gabor_out90deg{colIndx} = imfilter(Img(:, left : right),gb{7},'symmetric');

   gaborFroNorm0deg(colIndx) = norm(gabor_out0deg{colIndx},'fro') / ((right - left) * size(Img,1));
   gaborFroNorm45deg(colIndx)= norm(gabor_out45deg{colIndx},'fro') / ((right - left) * size(Img,1));
   gaborFroNorm90deg(colIndx)= norm(gabor_out90deg{colIndx},'fro') / ((right - left) * size(Img,1));

end

0 个答案:

没有答案