• 大小: 1 KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-10-15
  • 语言: Matlab
  • 标签: matlab  

资源简介

此代码中m文件内容为对细胞的图像分割,包括对图像前期预处理,分割出细胞核,并在后期对细胞进行计数,对黏连的细胞有一定的分割功能,对于图像处理相关初学者有一定帮助

资源截图

代码片段和文件信息

Image = imread(‘spots.tif‘);
figureimshow(Image);
title(‘原图‘);
Theshold = graythresh(Image);%取得图象的全局域值
Image_BW = im2bw(ImageTheshold);%二值化图象
figureimshow(Image_BW);
title(‘初次二值化图像‘);
%第三步二值化图像进行
Image_BW_medfilt= medfilt2(Image_BW[13 13]);
figureimshow(Image_BW_medfilt);
title(‘中值滤波后的二值化图像‘);
%第四步:通过“初次二值化图像”与“中值滤波后的二值化图像”进行“或”运算优化图像效果
Optimized_Image_BW = Image_BW_medfilt|Image_BW;
figureimshow(Optimized_Image_BW);
title(‘进行“或”运算优化图像效果‘);
%第五步:优化后二值化图象取反,保证:‘1’-〉‘白色’,‘0’-〉‘黑色’
%方便下面的操作
Reverse_Image_BW = ~Optimized_Image_BW;
figureimshow(Reverse_Image_BW);
title(‘优化后二值化图象取反‘);
%第六步:填充二进制图像的背景色,去掉细胞内的黑色空隙
Filled_Image_BW = bwfill(Reverse_Image_BW‘holes‘);
figure imshow(Filled_Image_BW);
title(‘已填充背景色的二进制图像‘);
%第七步:对图像进行开运算,去掉细胞与细胞之间相粘连的部分
SE = strel(‘disk‘4);
Open_Image_BW = imopen(Filled_Image_BWSE);
figure imshow(Open_Image_BW);
title(‘开运算后的图像‘);
%-----------------------------------------------
%-------------开始计算细胞数--------------------
%-----------------------------------------------
[LabelNumber]=bwlabel(Open_Image_BW8)%初步取得细胞个数
Array = bwlabel(Open_Image_BW8);%取得贴标签处理后的图像
Sum = [];
%依次统计贴标签后数组
for i=1:Number
[rc] = find(Array==i);%获取相同标签号的位置,将位置信息存入[rc]
rc = [r c];
Num = length(rc);%取得vc数组的元素的个数
Sum([i])=Num;%将元素个数存入Sum数组
end
Sum
N = 0;
%假如Sum数组中的元素大于了1500,表示有两个细胞相连,像素点较多,即分为两个细胞数
for i=1:length(Sum)
if(Sum([i])) > 500
N = N+1;
end
end
%-------------------------------------------
%------------------统计最终细胞数-----------
%-------------------------------------------
Number = Number+N

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1918  2015-10-21 20:58  celll\cells.m

     目录          0  2018-02-05 13:25  celll

----------- ---------  ---------- -----  ----

                 1918                    2


评论

共有 条评论