【细胞分割】基于Otsu大津法的细胞图像分割与计数系统附Matlab代码
✅作者简介热爱科研的Matlab仿真开发者擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。往期回顾关注个人主页Matlab科研工作室 关注我领取海量matlab电子书和数学建模资料个人信条做科研博学之、审问之、慎思之、明辨之、笃行之是为博学慎思明辨笃行。 内容介绍该项目为数字图像处理课程实践项目基于Matlab编程实现细胞图像的自动化分割、计数与特征分析同时完成细胞内红/绿色染色体的识别与定位解决了细胞粘连、噪声干扰、染色体精准筛选等问题为生物医学诊断与细胞分析提供自动化技术支撑。项目实现了从图像预处理、细胞分割、特征提取到染色体识别的全流程自动化处理支持细胞数量统计、单细面积/周长计算、染色体形态筛选与质心标注代码通过多组细胞样本cell1/cell2/cell3测试具备一定的鲁棒性。项目背景细胞图像的精准分割与计数是生物医学研究的基础环节人工分析存在效率低、主观性强、误差大的问题且细胞图像易存在噪声干扰、细胞粘连、染色体形态多样等难点传统方法难以实现自动化、高精度的分析。本项目依托数字图像处理技术构建自动化处理系统解决上述痛点实现细胞与染色体的精准识别、计数和特征提取为生物医学研究提供高效的工具支持。数据样本展示当前有3张细胞图像样本图像中细胞主体显现为蓝色细胞中存在被染成红色与绿色的染色体。展示如下核心功能细胞图像预处理自定义滤波、锐化算法实现噪声去除与边缘增强粘连细胞分割基于分水岭算法实现粘连细胞的精准切分完成单个细胞区域提取细胞特征分析自动统计细胞数量计算每个细胞的面积、周长并可视化标注染色体识别计数基于R/G颜色通道实现红/绿色染色体筛选通过形态阈值过滤非目标区域统计数量并标注质心坐标结果可视化生成细胞标签着色图、独立细胞展示窗口、染色体质心标注图直观展示分析结果。实验流程与核心实现整体流程图像读取 → 通道分离 → 预处理去噪锐化 → Otsu二值化 → 分水岭分割粘连细胞 → 细胞标签化与特征计算 → 染色体识别与计数 → 结果可视化1. 图像通道分离细胞主体为蓝色选取B通道进行细胞分割与特征分析细胞内红/绿色染色体分别选取R通道、G通道进行独立识别分离不同通道以降低目标干扰。2. 图像预处理自定义两个核心函数实现去噪与锐化提升图像质量为后续分割做准备1中值滤波去噪medfilter以3×3窗口遍历图像通过计算窗口内像素中值替换中心像素有效抑制图像噪声保留边缘细节。2自定义锐化sharpimfilter定义水平/垂直方向三阶梯度核通过卷积计算像素梯度幅值提升图像边缘对比度强化细胞与背景的边界特征。3. Otsu大津法二值化自定义Otsu函数通过最大化类间方差选取最优阈值实现细胞前景与背景的初步分割得到二值化图像。核心思想遍历所有可能阈值计算不同阈值下前景/背景的类间方差取方差最大值对应的阈值为最优阈值提升分割的准确性。4. 分水岭算法分割粘连细胞针对二值化图像中细胞粘连严重的问题通过分水岭算法水坝分割实现粘连细胞的精准切分核心步骤bwareaopen移除二值图像中面积过小的噪声区域净化前景bwdist距离变换计算前景像素到最近背景的距离生成距离灰度图imextendedmin确定分割种子点标记每个细胞的核心区域imimposemin将种子点强制为距离图的局部最小值确定分割起始点watershed分水岭变换基于最小值点实现细胞区域的分割完成粘连细胞切分。5. 细胞特征分析与计数通过bwlabel对分割后的细胞区域进行标签化每个细胞分配唯一标签基于标签实现细胞数量统计与特征计算1细胞数量与面积计算标签数即为细胞总数每个标签下的像素点数量为对应细胞的面积遍历所有标签统计并存储面积数据至S_list。2细胞周长计算通过8邻域检测判断细胞边界像素若某像素为细胞区域且其8邻域存在背景像素则判定为边界像素统计所有边界像素数量即为细胞周长结果存储至C_list。3细胞可视化标注生成细胞着色图与标签可视化图在图像中标注细胞编号、面积、周长并实现独立细胞展示窗口自动根据细胞数量创建窗口每页9个细胞提取单个细胞区域并展示其面积、周长信息。6. 红/绿色染色体识别与计数针对R/G通道的染色体图像重复预处理Otsu二值化操作二值化阈值在最优值基础上50抑制颜色扩散干扰通过形态筛选质心标注实现精准识别形态筛选利用regionprops计算连通区域的离心率Eccentricity设定阈值0.9筛选接近圆形的染色体离心率越接近0形状越圆剔除长条状伪目标数量统计遍历每个细胞标签区域统计其中符合形态要求的红/绿色染色体数量分别存储至R_Count、G_Count质心标注记录染色体的质心坐标在原始图像上用红点红染色体、绿点绿染色体标注并在细胞中心标注染色体数量边缘过滤忽略细胞区域外的染色体仅统计细胞内的有效目标。⛳️ 运行结果 部分代码%自定义中值滤波函数实现图像去噪function new_pic medfilter(pic,n)Nones(n,n);[h,w]size(pic);copy_picdouble(pic); %将图像信息流设为double格式x2copy_pic;offset floor(n/2);for i offset1:h-offsetfor j offset1:w-offset% 提取当前窗口内的像素值b copy_pic(i-offset:ioffset, j-offset:joffset).*N;% 计算中位数s median(b,[1,2]);% 将中位数赋给输出图像的对应位置x2(i,j) s;endendnew_picuint8(x2);end 参考文献[1]薛延学,刘敏,马思欣,等.复杂背景下基于二维OTSU和肤色分割结合的掌纹图像分割方法[J].西安理工大学学报, 2015, 31(3):7.DOI:CNKI:SUN:XALD.0.2015-03-017.更多免费数学建模和仿真教程关注领取