我有一个具有 12 个不同方向的 gabor 滤波器的可视化输出。我想将可视化图像叠加在我的视网膜图像上以进行血管提取。我该怎么做?我尝试了以下方法。还有其他方法可以执行叠加matlab 中的图像。
这是我的代码
I = getimage();
I=I(:,:,2);
lambda = 8;
theta = 0;
psi = [0 pi/2];
gamma = 0.5;
bw = 1;
N = 2;
img_in = im2double(I);
%img_in(:,:,2:3) = []; % discard redundant channels, it's gray anyway
img_out = zeros(size(img_in,1), size(img_in,2), N);
for n=1:N
gb = gabor_fn(bw,gamma,psi(1),lambda,theta)...
+ 1i * gabor_fn(bw,gamma,psi(2),lambda,theta);
% gb is the n-th gabor filter
img_out(:,:,n) = imfilter(img_in, gb, 'symmetric');
% filter output to the n-th channel
%theta = theta + 2*pi/N
%figure;
%imshow(img_out(:,:,n));
imshow(img_in); hold on;
h = imagesc(img_out(:,:,n)); % here i am getting error saying CDATA must be size[M*N]
set( h, 'AlphaData', .5 ); % .5 transparency
figure;
imshow(h);
theta = 15 * n; % next orientation
end
这是我的原始图像
这是我通过 gabor 过滤器使用方向得到的可视化图像 这是我必须获得的关于可视化的图像类型/类型。即我必须将可视化图像强加在我的原始图像上,我必须获得这种类型的图像