如何在Matlab中的3D图像上实现gabor滤镜

用户名

我正在使用3D图像,我想实现Gabor功能。为此,我需要生成具有不同比例和方向(也许以3D,两个角度)的Gabor滤波器组,然后将其与我的图像融合。我的问题是,是否有可能实施3D gabor滤镜,然后将其与3D图像融合。还是我要在2D切片中逐片进行。如果是这样,将不胜感激在matlab中实现它的任何建议。

先感谢您

塞利克

使其成为2D。Gabor滤镜会自动将图像更改为灰度,因此无论如何3D变得毫无用处。

这是一个用于matlab的gabor过滤器,我使用了它,它运行良好。

function gaborArray = gaborFilterBank(u,v,m,n)

% GABORFILTERBANK generates a custum Gabor filter bank. 
% It creates a u by v array, whose elements are m by n matries; 
% each matrix being a 2-D Gabor filter.
% 
% 
% Inputs:
%       u   :   No. of scales (usually set to 5) 
%       v   :   No. of orientations (usually set to 8)
%       m   :   No. of rows in a 2-D Gabor filter (an odd integer number usually set to 39)
%       n   :   No. of columns in a 2-D Gabor filter (an odd integer number usually set to 39)
% 
% Output:
%       gaborArray: A u by v array, element of which are m by n 
%                   matries; each matrix being a 2-D Gabor filter   
% 
% 
% Sample use:
% 
% gaborArray = gaborFilterBank(5,8,39,39);
% 
% 
%   Details can be found in:
%   
%   M. Haghighat, S. Zonouz, M. Abdel-Mottaleb, "Identification Using 
%   Encrypted Biometrics," Computer Analysis of Images and Patterns, 
%   Springer Berlin Heidelberg, pp. 440-448, 2013.
% 
% 
% (C)   Mohammad Haghighat, University of Miami
%       [email protected]
%       I WILL APPRECIATE IF YOU CITE OUR PAPER IN YOUR WORK.



if (nargin ~= 4)    % Check correct number of arguments
    error('There should be four inputs.')
end


%% Create Gabor filters

% Create u*v gabor filters each being an m*n matrix

gaborArray = cell(u,v);
fmax = 0.25;
gama = sqrt(2);
eta = sqrt(2);

for i = 1:u

    fu = fmax/((sqrt(2))^(i-1));
    alpha = fu/gama;
    beta = fu/eta;

    for j = 1:v
        tetav = ((j-1)/v)*pi;
        gFilter = zeros(m,n);

        for x = 1:m
            for y = 1:n
                xprime = (x-((m+1)/2))*cos(tetav)+(y-((n+1)/2))*sin(tetav);
                yprime = -(x-((m+1)/2))*sin(tetav)+(y-((n+1)/2))*cos(tetav);
                gFilter(x,y) = (fu^2/(pi*gama*eta))*exp(-((alpha^2)*(xprime^2)+(beta^2)*(yprime^2)))*exp(1i*2*pi*fu*xprime);
            end
        end
        gaborArray{i,j} = gFilter;

    end
end


%% Show Gabor filters

% Show magnitudes of Gabor filters:
figure('NumberTitle','Off','Name','Magnitudes of Gabor filters');
for i = 1:u
    for j = 1:v        
        subplot(u,v,(i-1)*v+j);        
        imshow(abs(gaborArray{i,j}),[]);
    end
end

% Show real parts of Gabor filters:
figure('NumberTitle','Off','Name','Real parts of Gabor filters');
for i = 1:u
    for j = 1:v        
        subplot(u,v,(i-1)*v+j);        
        imshow(real(gaborArray{i,j}),[]);
    end
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Matlab中的3D图像上实现gabor滤镜

来自分类Dev

如何在图像上应用灰度滤镜?

来自分类Dev

如何在Flutter中实现水平3D ListView

来自分类Dev

Matlab中图像的3D图

来自分类Dev

如何在Matlab中输入3D矩阵?

来自分类Dev

如何在Matlab中快速绘制3D向量?

来自分类Dev

如何在Matlab中绘制圆形3D图

来自分类Dev

如何在MatLab中创建3D图?

来自分类Dev

带2D滤镜的卷积3D图像

来自分类Dev

如何在Matlab中实现灰度形态学检测灰度图像上的圆形物体?

来自分类Dev

3D转换元素上的CSS模糊滤镜

来自分类Dev

在RGB图像上应用Matlab图像滤镜

来自分类Dev

在RGB图像上应用Matlab图像滤镜

来自分类Dev

MATLAB-如何在MATLAB中的3d图中同时移动多个标记

来自分类Dev

如何在Matlab的3D点云上拟合曲面?

来自分类Dev

如何在matlab中知道其在3D矩阵上的顶点来填充矩形

来自分类Dev

将gabor滤镜应用于图像

来自分类Dev

如何在Qt / QML中实现3D深度和阴影?

来自分类Dev

如何在3D pyqtgraph实现中设置GLMeshItem的绝对位置

来自分类Dev

如何在Matlab中将2D矩阵序列存储到3D数组中?

来自分类Dev

如何在Matlab中处理3D体积中的单个连接组件?

来自分类Dev

如何在具有3D效果的ios中调整图像大小。

来自分类Dev

如何在MATLAB中从3D点云中提取xyz坐标

来自分类Dev

如何在Matlab中绘制3D有向图

来自分类Dev

如何在八度/ Matlab中绘制3D线

来自分类Dev

如何在matlab中绘制一个用颜色填充的3d圆

来自分类Dev

如何在MATLAB中从3D矩阵的每一行中选择矢量元素?

来自分类Dev

如何在MATLAB中转置3D矩阵(')

来自分类Dev

CSS滤镜打破3D变换