我正在尝试使用Curvelet变换来增强视网膜血管。根据论文“使用Curvelet变换和核模糊c均值提取血管并去除视盘”:对于边缘增强,近似子带即对应于图像的粗略近似设置为零,其余子带乘以某个放大系数“α”。因此,背景被抑制,而详细的边缘被突出显示。计算出逆曲波变换并将其叠加在原始图像上。
这是我的MATLAB代码,与本文中所需的图像不同。谁能帮我为什么我没有得到正确的结果?
感谢您的帮助。
PS:对于Curvelet变换,我使用了Donoho在www.curvelet.org中实现的工具箱
%read the image and extract green channel
X = imread('C:\Users\02_test.tif');
X=double(X(:,:,2));
[m,n]=size(X);
%take curvelet transform
C = fdct_wrapping(X,1,1);
Ct=C;
% coarse approximation is set to zero
for r=1:length(C{end})
C{end}{r}=zeros(size(C{end}{r}));
end
% multiply other subbands by amplification factor
for w=1:(length(C)-1)
for s=1:length(C{w})
C{w}{s}=2*C{w}{s};
end
end
%inverse curvelet transform
Y = ifdct_wrapping(C,1,m,n); %Y is changed img
YY = ifdct_wrapping(Ct,1,m,n); %YY is original
%superimpose
h=1.25*Y+YY*0.75;
%show image
figure;imagesc(Y);colormap gray