Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 调谐Gabor滤波器_Matlab_Image Processing_Filtering_Wavelet - Fatal编程技术网

Matlab 调谐Gabor滤波器

Matlab 调谐Gabor滤波器,matlab,image-processing,filtering,wavelet,Matlab,Image Processing,Filtering,Wavelet,我试图在嘈杂的垂直堆叠层的图片中找出病态 采用Gabor滤波。对于每一列,我考虑左右两侧各有10个像素的邻域,并使用gabor核对图像部分进行过滤。然后取frobenious范数,这样每列都有一个标量值 下面是我使用下面发布的图片得到的结果。对我来说,0度的响应比45度的响应要高得多,这似乎是违反直觉的 但是理想的效果得到了满足,这意味着我可以声明一个条件,即使用0度的值低于45度的值来命中第300列附近的病理学。 我想是另一种情况,还是我的图像太吵了 因此,我的问题是:当垂直堆叠层的结构被

我试图在嘈杂的垂直堆叠层的图片中找出病态 采用Gabor滤波。对于每一列,我考虑左右两侧各有10个像素的邻域,并使用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
windowRadius=10;
bw=1;
对于k=0:23
θ(k+1)=k*pi/12;
结束
psi=[0π/2];
λ=8;%标准值8
伽马=0.5;%标准值0.5
对于colIndx=1:大小(Img,2)
如果colIndx窗口半径小于1
左=1;
其他的
左=colIndx-窗口半径;
结束
如果colIndx+windowRadius>大小(Img,2)
右=尺寸(Img,2);
其他的
右=共线x+窗半径;
结束
对于i=1:长度(θ)
gb{i}=gabor_fn(bw,gamma,psi(1),lambda,theta(i))。。。
+1i*gabor_fn(bw,gamma,psi(2),λ,θ(i));
结束
gabor_out0deg{colIndx}=imfilter(Img(:,左:右),gb{1},'symmetric');
gabor_out45deg{colIndx}=imfilter(Img(:,左:右),gb{4},'symmetric');
gabor_out90deg{colIndx}=imfilter(Img(:,左:右),gb{7},'symmetric');
gaborFroNorm0deg(colIndx)=范数(gabor_out0deg{colIndx},'fro')/((右-左)*大小(Img,1));
gaborfrorm45deg(colIndx)=范数(gabor_out 45deg{colIndx},'fro')/((右-左)*大小(Img,1));
gaborFroNorm90deg(colIndx)=范数(gabor_out 90deg{colIndx},'fro')/((右-左)*大小(Img,1));
结束

尝试使用
imgaborfilt
:谢谢你的建议,但我仍然不知道高波长是否适合我,以及为什么0度的幅度比45度的幅度大得多。使用sobel滤波器可以得到预期的结果,即0度的幅度是最弱的,但不幸的是,我不需要索贝尔过滤器。