发布时间:2026/7/17 11:02:38
Kmeans 聚类图像分割
Kmeans 聚类图像分割一、技术背景当图像中存在多个不同的区域类别时传统的Otsu二值化方法只能将图像分为前景和背景两类无法满足复杂场景的需求。Kmeans聚类是一种无监督学习方法可以将数据自动划分为K个类别非常适合多区域图像分割。本文介绍 SEM 项目中imageUtils.kmeans_detect()方法的实现原理该方法基于像素灰度值进行6类聚类并保留最小两类的策略实现图像分割。二、数学原理2.1 Kmeans算法Kmeans算法的目标是将nnn个样本划分为KKK个簇使得每个样本到其所属簇中心的距离最小。目标函数最小化簇内平方误差J∑j1K∑xi∈Cj∥xi−μj∥2 J \sum_{j1}^{K}\sum_{x_i \in C_j} \|x_i - \mu_j\|^2Jj1∑K​xi​∈Cj​∑​∥xi​−μj​∥2其中CjC_jCj​表示第jjj个簇μj\mu_jμj​表示第jjj个簇的中心。2.2 算法步骤初始化随机选择KKK个初始聚类中心μ1,μ2,...,μK\mu_1, \mu_2, ..., \mu_Kμ1​,μ2​,...,μK​分配将每个样本分配到距离最近的聚类中心Cj{xi:∥xi−μj∥≤∥xi−μl},∀l≠j}C_j \{x_i : \|x_i - \mu_j\| \leq \|x_i - \mu_l\}, \forall l \neq j\}Cj​{xi​:∥xi​−μj​∥≤∥xi​−μl​},∀lj}更新重新计算每个簇的中心μj1∣Cj∣∑xi∈Cjxi\mu_j \frac{1}{|C_j|}\sum_{x_i \in C_j} x_iμj​∣Cj​∣1​xi​∈Cj​∑​xi​迭代重复步骤2-3直到收敛2.3 图像分割中的应用在图像分割中将每个像素的灰度值或颜色值作为特征向量灰度图像每个像素是一个一维特征灰度值彩色图像每个像素是一个三维特征R, G, B2.4 最小两类保留策略在SEM图像分析中目标区域如孔隙通常呈现较低的灰度值。因此聚类完成后计算6个聚类中心的灰度值找出灰度值最小的两个类将这两个类作为目标区域保留其余区域设为背景三、代码实现以下代码来自e:\SEM\Utils\imageUtils.cs//kmeans聚类分割publicstaticvoidkmeans_detect(refMatsrc_img){intclusterCount6;// 聚类数Matgray_imgnewMat();Cv2.CvtColor(src_img,gray_img,ColorConversionCodes.BGR2GRAY);Matclahe_resultnewMat();CLAHEclaheCv2.CreateCLAHE();clahe.ClipLimit2.0;clahe.TilesGridSizenewOpenCvSharp.Size(8,8);clahe.Apply(gray_img,clahe_result);// 高斯滤波MatresultnewMat();Cv2.GaussianBlur(clahe_result,result,newOpenCvSharp.Size(5,5),0);intwidthgray_img.Cols;intheightgray_img.Rows;intdimsgray_img.Channels();// 定义初始值intsampleCountwidth*height;MatPointsnewMat(sampleCount,dims,MatType.CV_32F,newScalar(10));// RGB 数据转为样本数据intindex0;for(introw0;rowheight;row){for(intcol0;colwidth;col){indexrow*widthcol;floatvalueresult.Atbyte(row,col);Points.Set(index,0,value);}}// KMeans 聚类MatlabelsnewMat();MatcentersnewMat(clusterCount,1,Points.Type());TermCriteriacriterianewTermCriteria(CriteriaTypes.Eps|CriteriaTypes.Count,10,0.1);Cv2.Kmeans(Points,clusterCount,labels,criteria,3,KMeansFlags.PpCenters,centers);// 寻找最小的两个聚类中心ListfloatcenterValuesnewListfloat();for(inti0;iclusterCount;i){centerValues.Add(centers.Atfloat(i,0));}// 找出最小值和次小值intminIndex0;intsecondMinIndex1;floatminValuecenterValues[0];floatsecondMinValuecenterValues[1];for(inti0;icenterValues.Count;i){if(centerValues[i]minValue){secondMinValueminValue;secondMinIndexminIndex;minValuecenterValues[i];minIndexi;}elseif(centerValues[i]secondMinValuei!minIndex){secondMinValuecenterValues[i];secondMinIndexi;}}// 生成结果图像for(introw0;rowheight;row){for(intcol0;colwidth;col){indexrow*widthcol;intlabellabels.Atint(index,0);if(label!minIndexlabel!secondMinIndex){scale_img.SetVec3b(row,col,newVec3b(0,0,0));src_img.SetVec3b(row,col,newVec3b(0,0,0));}else{scale_img.SetVec3b(row,col,newVec3b(255,255,255));src_img.SetVec3b(row,col,newVec3b(255,255,255));}}}}处理流程预处理CLAHE对比度增强 高斯滤波去噪数据准备将图像像素转换为一维特征矩阵Kmeans聚类使用K-means初始化进行6类聚类聚类中心分析找出灰度值最小的两个类生成结果将最小两类标记为目标白色其余为背景黑色四、参数调优4.1 关键参数参数默认值说明clusterCount6聚类数量ClipLimit2.0CLAHE对比度限制TilesGridSize(8, 8)CLAHE网格大小高斯核大小(5, 5)高斯滤波核尺寸最大迭代次数10Kmeans终止条件迭代精度0.1Kmeans终止精度重试次数3Kmeans不同初始化次数4.2 聚类数选择场景建议聚类数说明简单双峰分布2-3类似Otsu效果SEM截面分析6区分多种组织成分复杂纹理8-10捕捉更多细节4.3 调优建议聚类数调整根据图像中实际存在的区域类型数量设置保留类别数根据目标特征调整如保留最小1-3类预处理优化适当增强对比度有助于聚类效果五、常见问题Q1聚类结果不稳定原因Kmeans对初始中心敏感可能收敛到局部最优。解决方案使用KMeansFlags.PpCentersK-means初始化增加重试次数第3个参数设置合理的终止条件Q2聚类速度较慢原因图像分辨率高样本数多。解决方案将图像缩小后再聚类减少聚类数量减少迭代次数和重试次数Q3目标区域分割不完整原因聚类数过多目标被分成多个类。解决方案减少聚类数量增加保留的类别数量如保留最小3类Q4背景区域被误分类为目标原因背景区域灰度值与目标相近。解决方案增加预处理步骤如光照校正考虑使用空间约束的聚类方法结合形态学后处理去除误分类区域Q5如何确定最佳聚类数解决方案使用肘部法则Elbow Method计算不同聚类数下的簇内平方误差和选择误差下降变缓的转折点作为聚类数

相关新闻

多场景音乐播放系统开发:从音频处理到后台播放优化
2026/7/17 11:02:38

多场景音乐播放系统开发:从音频处理到后台播放优化

在实际开发音乐类应用或音视频处理项目时,背景音乐、冥想音乐、放松音乐、睡眠音乐、助眠音乐和深度睡眠音乐是常见的功能需求。这些音乐类型虽然听起来相似,但在技术实现上涉及音频文件管理、播放控制、音效处理、循环策略和用户体验等多个层面。很多开…

阅读更多
【第一部分:认识 Agentic AI】1.Agentic AI 为什么突然火了
2026/7/17 11:02:38

【第一部分:认识 Agentic AI】1.Agentic AI 为什么突然火了

2026 年 7 月初,“2026 中国 AI 智能体大会”在杭州举行。 从大会讨论的自进化智能体、Coding Agent、记忆系统、Agent Harness、安全治理和智能体基础设施等议题来看,行业关注的重点正在发生明显变化: AI 的竞争焦点,正在从“模…

阅读更多
Erlang/OTP监督树原理与observer_cli终端观测实战指南
2026/7/17 11:02:38

Erlang/OTP监督树原理与observer_cli终端观测实战指南

第一次在 Erlang/OTP 环境下尝试观察运行时状态时,很多人会陷入一个误区:以为只要知道进程数量就够了。直到你在生产环境遇到一个看似简单的进程泄漏问题,却发现根本找不到是哪个监督树分支在异常增长,才明白“看得见”和“看得懂…

阅读更多
AI辅助STM32开发:零代码实现按键控制LED
2026/7/17 12:02:38

AI辅助STM32开发:零代码实现按键控制LED

1. 项目背景与核心思路作为一名嵌入式开发工程师,我最近尝试了一个有趣的实验:完全不用手动编写代码,仅靠AI辅助就实现了STM32单片机的按键输入功能。这个项目源于我对当前AI编程工具实际应用效果的好奇——它们到底能否真正替代基础嵌入式开…

阅读更多
PCB设计中晶振布局的五大黄金法则与实战技巧
2026/7/17 12:02:38

PCB设计中晶振布局的五大黄金法则与实战技巧

1. 晶振在PCB设计中的核心地位晶振作为电子系统的"心脏",其稳定性和可靠性直接影响整个系统的性能表现。在高速数字电路设计中,晶振产生的时钟信号质量往往决定了系统能否稳定运行。我经历过一个典型的案例:某工业控制板在EMC测试中…

阅读更多
NHSE完全指南:3步掌握动物森友会存档编辑终极技巧
2026/7/17 12:02:38

NHSE完全指南:3步掌握动物森友会存档编辑终极技巧

NHSE完全指南:3步掌握动物森友会存档编辑终极技巧 【免费下载链接】NHSE Animal Crossing: New Horizons save editor 项目地址: https://gitcode.com/gh_mirrors/nh/NHSE 想要彻底改变你的《集合啦!动物森友会》游戏体验吗?NHSE&…

阅读更多
GPT-5.6 编码实测:模型差异最明显的几个开发场景分析
2026/7/17 12:02:38

GPT-5.6 编码实测:模型差异最明显的几个开发场景分析

用GPT-5.6、Claude 4.8、Gemini 3.5、Grok 3四个模型做了一轮编码实测,发现有些场景四个模型差距不大,有些场景差距非常明显。我们重点测试了差异最明显的几个开发场景。如果你正在找适合自己开发场景的AI工具,建议先到 kulaai(官…

阅读更多
EMC电磁兼容性:原理、问题诊断与设计实践
2026/7/17 12:02:38

EMC电磁兼容性:原理、问题诊断与设计实践

1. 电磁兼容性(EMC)的本质与行业痛点电磁兼容性(Electromagnetic Compatibility,简称EMC)这个专业术语听起来高深莫测,但它的核心问题其实每个电子工程师都深有体会——当你设计的电路板莫名其妙重启、医疗…

阅读更多
5分钟掌握Continue:JetBrains IDE终极AI编程助手配置指南
2026/7/17 11:02:38

5分钟掌握Continue:JetBrains IDE终极AI编程助手配置指南

5分钟掌握Continue:JetBrains IDE终极AI编程助手配置指南 【免费下载链接】continue open-source coding agent 项目地址: https://gitcode.com/GitHub_Trending/co/continue 还在为重复编写样板代码而烦恼吗?每次调试时是否都希望有个AI助手在身…

阅读更多
智慧树刷课插件:5分钟实现自动化学习的智能助手
2026/7/16 21:32:43

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

阅读更多
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案
2026/7/16 15:03:34

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

阅读更多
办公自动化实战:5个免费工具构建合同处理流水线
2026/7/16 22:47:50

办公自动化实战:5个免费工具构建合同处理流水线

1. 这不是“又一个工具包”,而是一套经过237次真实场景验证的效率组合拳“2026.04.28实用教程工具分享”这个标题乍看平平无奇,像极了你邮箱里被自动归入“促销/订阅”文件夹的那类通知——但如果你真把它当普通更新忽略,接下来半年里&#x…

阅读更多
2026全国外贸独立站搭建公司推荐排行,含零代码SAAS、AI编程、源码定制
2026/7/17 0:02:36

2026全国外贸独立站搭建公司推荐排行,含零代码SAAS、AI编程、源码定制

2026全国外贸独立站搭建公司推荐排行 外贸工厂、工贸企业建设官网,核心需求与普通展示型网站并不相同。除了页面整洁、多语言适配和海外访问体验,企业还要重点考虑数据能否导出、站点能否迁移、源码是否可控、后续费用是否透明,以及更换服务…

阅读更多
HarmonyOS 应用开发《掌上英语》第18篇:Grid 布局实战——从功能 5 宫格到练习 2×2 模式
2026/7/17 0:02:36

HarmonyOS 应用开发《掌上英语》第18篇:Grid 布局实战——从功能 5 宫格到练习 2×2 模式

Grid 布局实战——从功能 5 宫格到练习 22 模式引言 Grid 布局是 ArkTS 中最强大的布局容器之一,它通过行列模板系统实现灵活的多列多行布局。在本英语学习 App 中,Grid 布局贯穿了首页的多个核心模块:功能栏 5 宫格、练习模式 22 卡片、以及…

阅读更多
HarmonyOS 应用开发《掌上英语》第19篇:3D 翻转动画实现——ArkTS 动画系统全解析
2026/7/17 0:02:36

HarmonyOS 应用开发《掌上英语》第19篇:3D 翻转动画实现——ArkTS 动画系统全解析

3D 翻转动画实现——ArkTS 动画系统全解析引言 在移动应用中,卡片翻转动画是最受欢迎的交互动效之一,它能给用户带来直观的"物理世界"操作感。在我们的英语学习 App 的单词学习页面(CourseHomePage.ets)中,就…

阅读更多
基于Dify与DeepSeek构建私有知识库问答系统实战指南
2026/7/17 5:10:40

基于Dify与DeepSeek构建私有知识库问答系统实战指南

在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…

阅读更多
FAE放射组学分析工具:医学影像特征探索的完整解决方案
2026/7/17 5:34:11

FAE放射组学分析工具:医学影像特征探索的完整解决方案

FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE 你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…

阅读更多
DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖!
2026/7/17 7:48:38

DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖!

DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖! 【免费下载链接】DesktopNaotu 桌面版脑图 (百度脑图离线版,思维导图) 跨平台支持 Windows/Linux/Mac OS. (A cross-platform multilingual Mind Map Tool) 项目地址:…

阅读更多