截断的Gabor函数中的双边阈值

时间:2014-12-02 17:01:56

标签: matlab

我正在对视网膜中的血管进行提取,为此我正在关注纸张,现在我必须在截断的Gabor函数中进行双侧阈值。解释这一点的论文部分是:

双面阈值设置让r(x)表示截断的Gabor函数的峰值。阈值T在点x = (x + d)(x d)处定义,如以下不等式:

R(x) - r(x-d) > T
R(x) - r(x+d) < T

现在,d是通过将r乘以常量cd

获得的
T = ct * t

其中ct是根据经验获得的常数

t = r(x) - r(x-d)= r(x) - r(x+d)
T = -exp(d^2/2*sigm)*cos(2*pi*d/lambda)

注意,对于较小血管的提取,阈值T乘以0.5(经验)。由于每个卷积结果(来自每个方向)产生表示该方向上的血管的最大强度像素,我们比较所有图像的像素值并选择最大强度值以形成表示所有选定方向中的血管的血管图

我不知道怎么做双面门槛以适应我的gabor功能 这是我用于gabor功能的代码:

thetas=0:pi/12:pi;
lambda=3.5;
sigmalow=1.3;
sigmahigh=5.8;
%%Small Blood-vessels
sigma_x = sigmalow;
sigma_y = sigmalow;

for theta=1:numel(thetas)

nstds = 5;
xmax = max(abs(nstds*sigma_x*cos(theta)),abs(nstds*sigma_y*sin(theta)));
xmax = ceil(max(1,xmax));
ymax = max(abs(nstds*sigma_x*sin(theta)),abs(nstds*sigma_y*cos(theta)));
ymax = ceil(max(1,ymax));
xmin = -xmax; ymin = -ymax;
[x,y] = meshgrid(xmin:xmax,ymin:ymax);

x_theta=x*cos(theta)+y*sin(theta);
y_theta=-x*sin(theta)+y*cos(theta);

gb= exp(-(x_theta.^2/sigma_x^2+y_theta.^2/sigma_y^2)).*cos(2*pi*x_theta/lambda);

filtered = conv2(Bhigh,gb);

filtered2 = conv2(Blow,gb);

end
   figure(6),imshow(filtered,[]);
   figure(7),imshow(filtered2,[]);

0 个答案:

没有答案