我正试图在嘈杂的垂直堆叠层的图片中寻找病理 与Gabor过滤。对于每一列,我认为左边和右边有10个像素的neigborhood,并用gabor内核过滤图像的一部分。然后我采用frobenious规范,这样我每列都有一个标量值。
以下是我使用下面发布的图片的结果。对我来说,似乎违反直觉 0度的响应远高于45度的响应。
但是满足了期望的效果,这意味着我可以陈述一种条件,使得使用0度的值低于45度的值来击中第300列附近的病理。 我反过来预计或者我的形象太吵了?
所以我的问题是:如何优化参数 lambda 和 gamma ,以便在垂直堆叠层的结构最大化时实现效果最大化破碎?(在图290-320周围的图片中间)
当我尝试更改参数时,我得到了太多误报,以至于我无法再区分了。
0度的值如何大于45度的滤波器响应?对我来说,考虑到这个图像似乎很奇怪。
这是图片
这是我的代码
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