删除亮点并分割灰度图像

时间:2016-09-27 16:43:57

标签: matlab image-processing image-segmentation

我正在寻找解决我手边问题的方法。以下是我必须分为三部分的图像:

然而问题是核心区域的亮点。我试图通过平滑图像并获得亮点的掩模来消除亮点。然后从亮点的位置减去某个值。结果如下:

现在,当我尝试根据图像的灰度值对其进行分割时,我得到了一个奇怪的结果,如下所示:

我需要一个类似于下图中轮廓区域的分段:

clc
close all
clear
I=imread('recon-1.1-B_Export0113.tiff');
I=im2uint8(I);

filt1=ones(31)/(31^2);
I2=imfilter(I,filt1);
I2=imfilter(I2,filt1);
I2=imfilter(I2,filt1);
I2=I2-40;
% I2=imadjust(I2);

I3=I-I2;
figure, imshow(I3)
figure, imshow(I)
I4=zeros(size(I));
I4(I3>40)=1;
se = strel('disk',2);
I4=imopen(I4,se);
figure,imshow(I4)

1 个答案:

答案 0 :(得分:0)

您可以检查图像中明亮区域的值,并使用该间隔执行二进制阈值处理。 假设您发现明亮区域的值介于t1和t2之间。

  

范围=(I> t1& I< t2);   I(范围)= 255;   I(〜范围)= 0;

在OpenCV中,cv :: inRange函数可以让您的工作更轻松。

http://docs.opencv.org/2.4/modules/core/doc/operations_on_arrays.html?highlight=inrange#inrange