尝试着做一个工程日记,也想把自己从项目中所学到的知识经验记录下来。而且网上的资源繁多复杂,方法也是各式各样,难免让人眼花缭乱,整理以下思路,供大家参考。
在研究很多篇文献后,我选用了一篇硕士论文中的研究思路,来进行实现。
这篇文献中提到,要对宫颈癌细胞图像进行分割,首先要提取细胞前景图像,从细胞前景中用标记分水岭算法提取细胞核,根据一个区域内细胞核的个数判断其是否是重叠细胞,如果不是,算法结束;如果是重叠的细胞,再分离重叠细胞的细胞质,直到分割结果是单个细胞为止,
提取细胞前景图像的步骤如下:
灰度化顾名思义,就是将彩色的图像转化成灰度图像的过程。而对图像进行灰度化有如下几种方法:
function f=MyGrayProcessing(Img)
[m,n,a]=size(Img);
% Img1_Gray=zeros(m,n);
% Img2_Gray=zeros(m,n);
Img3_Gray=zeros(m,n);
% Img4_Gray=zeros(m,n);
for x=1:m
for y=1:n
% Img1_Gray(x,y)=(Img(x,y,1)+Img(x,y,2)+Img(x,y,3))/3;%平均值法
% Img2_Gray(x,y)=max(Img(x,y,1),max(Img(x,y,2),Img(x,y,3))); %最大值法
Img3_Gray(x,y)=0.3*Img(x,y,1)+0.59*Img(x,y,2)+0.11*Img(x,y,3);%加权平均值法
% Img4.1_Gray(x,y)=Img(x,y,1) %分量法,R通道
% Img4.2_Gray(x,y)=Img(x,y,2) %分量法,G通道
% Img4.3_Gray(x,y)=Img(x,y,3) %分量法,B通道
end
end
% figure,imshow(Img);title('原图像')
% figure,imshow(uint8(Img1_Gray));title('平均值法灰度化图像')
% figure,imshow(uint8(Img2_Gray));title('最大值法灰度化图像')
% figure,imshow(uint8(Img4.1_Gray));title('分量法R通道灰度化图像')
% figure,imshow(uint8(Img4.2_Gray));title('分量法G通道灰度化图像')
% figure,imshow(uint8(Img4.3_Gray));title('分量法B通道灰度化图像')
f=uint8(Img3_Gray);
figure,imshow(f);title('加权平均值法灰度化图像')
图像直方图由于其计算代价较小,且具有图像平移、旋转、缩放不变性等众多优点,广泛地应用于图像处理的各个领域,特别是灰度图像的阈值分割、基于颜色的图像检索以及图像分类。
用MATLAB的自带函数就能直接实现。
x=imread('1.3.bmp');
y=rgb2gray(x);
hist_image=imhist(y);
figure(4)
plot(hist_image),xlim([0,256]),title('MATLAB自带函数')
因为细胞灰度直方图是呈锯齿状的,存在很多极小值点和毛刺噪声,这些锯齿极小值点成为我们找谷底的干扰。因此,需要采用高斯模板对直方图像做卷积操作进行平滑。
MATLAB中的fspecial函数能够实现高斯滤波,具体用法如下:
H = fspecial(‘gaussian’,hsize,sigma) ;
当type = ‘gaussian’时就是高斯滤波器了,size指定滤波器的大小,默认值是3×3,sigma指定滤波器的标准差,默认值是0.5。
具体代码如下:
x=imread('5.2.bmp');
y=rgb2gray(x);%灰度处理
h= fspecial('gaussian',3*3,0.5);
filteredRGB=imfilter(y,h);
z=imhist(filteredRGB);%直方图
figure(1)
plot(z),xlim([0,256]),title('MATLAB自带函数')%直方图显示
一般情况下,会对直方图进行归一化处理,使其值在[0,1.0]区间内,方便后续处理。
x=imread('5.2.bmp');
y=rgb2gray(x);%灰度处理
h= fspecial('gaussian',3*3,0.5);
filteredRGB=imfilter(y,h);
[cnts,x1]=imhist(filteredRGB,32);%直方图
[m,n]=size(x);
prob=cnts/m/n;
plot(x1,prob),xlim([0,256]),title('MATLAB自带函数')%归一化直方图显示
结果显示:
今天的项目就到这里吧,感觉虽然看起来很简单,背后的运算却是极其复杂的,还是得小心谨慎。
大创好难,想cry。