删除视网膜的光盘图像,将光盘的颜色设置为背景颜色

时间:2016-09-23 17:48:23

标签: image matlab background

我一直在处理视网膜图像,目前我正在提交小波,但我注意到我有两个问题:

  • 导致图像噪声的光盘
  • 界定视网膜的圆圈

原始图片是下一个

original image

我的计划是建立光盘音调的底部,以免丢失视网膜血管的任何细节(我发布了一个我玩的代码,但仍然不太了解,因为我知道光盘的色调以及如何在不改变血管的情况下将其设置为图像

关于视网膜的外圈,我不知道你推荐我(我不知道面具,如果他们必须咨询我的文献可以提供我会很感激)

 c = [242 134 72];% Background to change
 thresh = 50;
 A = imread('E:\Prueba.jpg');

 B = zeros(size(A));
 Ar = A(:,:,1);
 Ag = A(:,:,2);
 Ab = A(:,:,3);

 Br = B(:,:,1);
 Bg = B(:,:,2);
 Bb = B(:,:,3);


 logmap = (Ar > (c(1) - thresh)).*(Ar < (c(1) + thresh)).*...
 (Ag > (c(2) - thresh)).*(Ag < (c(2) + thresh)).*...
 (Ab > (c(3) - thresh)).*(Ab < (c(3) + thresh));
 Ar(logmap == 1) = Br(logmap == 1);
 Ag(logmap == 1) = Bg(logmap == 1); 
 Ab(logmap == 1) = Bb(logmap == 1);
 A = cat(3 ,Ar,Ag,Ab);
 imshow(A);

How can I change the background color of the image?

这个问题提供

我得到的图片如下

enter image description here

我需要这样的照片,光盘在分割视网膜的血管时不会引起噪音。

enter image description here

我想成为统一的背景......只有静脉被认识到了

我继续工作并获得了以下图像您可以意识到光盘会移除他上方的血管(静脉)的某些部分,因此我需要消除或使图像的整个底部均匀。 / p>

Enhancement image

2 个答案:

答案 0 :(得分:3)

作为Wouter said,您应该首先纠正图像的不均匀性。我会以自己的方式做到这一点:

首先,您可以调整参数以优化输出:

gfilt = 3;
thresh = 0.4;
erode = 3;
brighten = 20;

您将看到它们在代码中的使用方式。

这是主要步骤:对图像应用高斯滤镜使其平滑,然后从原始图像中减去结果。通过这种方式,您最终会得到数据的急剧变化,这些变化恰好是血管:

A = imread('Prueba.jpg');
B = imgaussfilt(A, gfilt) - A; % Gaussian filter and subtraction
% figure; imshow(B)

enter image description here

然后我创建一个二进制掩码来删除图像中不需要的区域:

% the 'imadjust' makes sure that you get the same result even if you ...
% change the intensity of illumination. "thresh" is the threshold of ...
% conversion to black and white:
circ = im2bw(imadjust(A(:,:,1)), thresh);
% here I am shrinking the "circ" for "erode" pixels:
circ = imerode(circ, strel('disk', erode));
circ3 = repmat(circ, 1, 1, 3); % and here I extended it to 3D.
% figure; imshow(circ)

enter image description here

最后,我删除周围黑暗区域的所有内容并显示结果:

B(~circ3) = 0; % ignore the surrounding area
figure; imshow(B * brighten) % brighten and show the output

enter image description here

说明:

  • 我没有看到最后一张图片作为最终结果,但可能你可以对它应用一些阈值并将其与其他图像分开。
  • 您提供的图像质量非常低。我希望通过更好的数据获得良好的结果。
  • 虽然蓝色通道的强度小于其余通道,但血管在那里表现得比其他通道好,因为血液是红色的!
  • 如果您正在获取此数据或者您可以访问此人,我建议您使用蓝光进行照明,因为它可以为您提供更高的血管对比度。

答案 1 :(得分:1)

形态操作适合处理sphagetti图像。

原始图片:

Original image

转换为灰度:

original = rgb2gray(gavrF);

通过形态学关闭估计背景:

se = strel('disk', 3);
background = imclose(original, se);

估计背景:

estimate of the background

然后,您可以从原始灰度图像中减去此背景。您可以通过对灰度图像进行底帽变换来直接执行此操作:

flatImage = imbothat(original, strel('disk', 4));

输出:

enter image description here

吵闹,但现在您可以访问全局阈值方法了。如果您希望手动进行减法或除法,请记住将数据类型更改为double。