我正在对视网膜中的血管进行提取,为此我正在关注纸张,现在我必须在截断的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,[]);