表面粗糙度分析
表面粗糙度分析一、技术背景表面粗糙度是衡量材料表面微观几何形状误差的重要指标在SEM图像分析中用于评估样品表面质量。传统粗糙度测量需要触针式仪器而基于图像的方法通过分析灰度变化来近似计算粗糙度参数。在SEM项目中calcuateRA方法实现了基于灰度图像的粗糙度近似计算包括Ra算术平均粗糙度灰度偏差的算术平均值Rq均方根粗糙度灰度偏差的均方根值纹理复杂度评分综合GLCM特征和频域特征二、数学原理2.1 算术平均粗糙度Ra在机械测量中Ra定义为测量长度内轮廓偏差绝对值的算术平均Ra1n∑i1n∣yi−yˉ∣R_a \frac{1}{n}\sum_{i1}^{n}|y_i - \bar{y}|Ra​n1​i1∑n​∣yi​−yˉ​∣在图像中用灰度值代替高度值Raimg1M×N∑i1M∑j1N∣g(i,j)−gˉ∣R_a^{img} \frac{1}{M \times N}\sum_{i1}^{M}\sum_{j1}^{N}|g(i,j) - \bar{g}|Raimg​M×N1​i1∑M​j1∑N​∣g(i,j)−gˉ​∣其中g(i,j)g(i,j)g(i,j)为像素灰度值gˉ\bar{g}gˉ​为平均灰度。2.2 均方根粗糙度RqRq定义为轮廓偏差的均方根值Rq1n∑i1n(yi−yˉ)2R_q \sqrt{\frac{1}{n}\sum_{i1}^{n}(y_i - \bar{y})^2}Rq​n1​i1∑n​(yi​−yˉ​)2​图像近似Rqimg1M×N∑i1M∑j1N(g(i,j)−gˉ)2R_q^{img} \sqrt{\frac{1}{M \times N}\sum_{i1}^{M}\sum_{j1}^{N}(g(i,j) - \bar{g})^2}Rqimg​M×N1​i1∑M​j1∑N​(g(i,j)−gˉ​)2​2.3 归一化处理将粗糙度值归一化到[0, 100]范围Normalizedvalue−minmax−min×100Normalized \frac{value - min}{max - min} \times 100Normalizedmax−minvalue−min​×1002.4 纹理复杂度综合GLCM对比度和熵TextureScoreContrastEntropy2TextureScore \frac{Contrast Entropy}{2}TextureScore2ContrastEntropy​三、代码实现3.1 粗糙度计算主函数// 文件路径: e:\SEM\Utils\imageUtils.cs// 计算RA值(粗糙度)publicstaticRAInfocalcuateRA(Matsrc_img){// 预处理灰度化、直方图均衡、高斯模糊MatprocessedPreProcessimage(src_img);// 特征提取varstatsCalculateGrayStatistics(processed);// Ra, RqvartextureCalculateTextureFeatures(processed);// GLCM特征varfreqCalculateFrequencyFeatures(processed);// 频域特征// 综合评估returnnewRAInfo(){NormallizeRaNormalize(stats.Ra,0,255)*100,NormallizeRqNormalize(stats.Rq,0,255)*100,TextureScore(texture.Contrasttexture.Entropy)/2};}3.2 预处理函数// 文件路径: e:\SEM\Utils\imageUtils.cs// 粗糙度预处理publicstaticMatPreProcessimage(Matsrc_img){MatoutputnewMat();// 灰度化Cv2.CvtColor(src_img,output,ColorConversionCodes.BGR2GRAY);// 直方图均衡化增强对比度Cv2.EqualizeHist(output,output);// 高斯模糊降噪Cv2.GaussianBlur(output,output,newOpenCvSharp.Size(3,3),0);returnoutput;}3.3 灰度统计特征计算// 文件路径: e:\SEM\Utils\imageUtils.cs// 灰度特征统计privatestaticGrayStatsCalculateGrayStatistics(Matgray){// 计算灰度均值和标准差ScalarmeanVal,stdDevVal;Cv2.MeanStdDev(gray,outmeanVal,outstdDevVal);// 手动计算Ra每个像素与均值偏差的累加doubletotalDeviation0;doubletotalDeviationSquare0;varindexergray.GetGenericIndexerbyte();for(inty0;ygray.Rows;y){for(intx0;xgray.Cols;x){doubledeviationMath.Abs(indexer[y,x]-meanVal.Val0);totalDeviationdeviation;totalDeviationSquaredeviation*deviation;}}doublepixelCountgray.Rows*gray.Cols;returnnewGrayStats{RatotalDeviation/pixelCount,// 算术平均粗糙度RqstdDevVal.Val0// 均方根粗糙度标准差};}3.4 归一化函数// 文件路径: e:\SEM\Utils\imageUtils.cs// 工具方法归一化到[0,1]privatestaticdoubleNormalize(doublevalue,doublemin,doublemax){return(value-min)/(max-min);}3.5 RAInfo结构体// 文件路径: e:\SEM\Utils\imageUtils.cs// 粗糙度结构体publicstructRAInfo{publicdoubleNormallizeRa;// 相对算术粗糙度 (0-100)值越大表面越粗糙publicdoubleNormallizeRq;// 相对均方根粗糙度 (0-100)值越大表面越不均匀publicdoubleTextureScore;// 纹理复杂度0-10.7高粗糙0.3低粗糙}四、参数调优4.1 粗糙度等级判定NormallizeRa表面状态纹理复杂度0-20光滑 0.320-40轻微粗糙0.3-0.540-60中等粗糙0.5-0.760-80较粗糙0.7-0.8580-100高度粗糙 0.854.2 预处理参数选择// 高斯模糊核大小选择Cv2.GaussianBlur(output,output,newOpenCvSharp.Size(3,3),0);// 标准降噪Cv2.GaussianBlur(output,output,newOpenCvSharp.Size(5,5),0);// 更强降噪// 直方图均衡化 vs CLAHECv2.EqualizeHist(output,output);// 全局均衡CLAHEclaheCv2.CreateCLAHE(2.0,newSize(8,8));// 局部自适应clahe.Apply(output,output);4.3 ROI区域选择// 建议在均匀区域计算粗糙度RectroinewRect(x,y,width,height);MatroiImagenewMat(src_img,roi);RAInforaInfocalcuateRA(roiImage);五、常见问题5.1 光照不均匀影响问题描述SEM图像亮度分布不均导致粗糙度计算偏差。解决方案使用CLAHE替代全局直方图均衡化CLAHEclaheCv2.CreateCLAHE();clahe.ClipLimit2.0;clahe.TilesGridSizenewOpenCvSharp.Size(8,8);clahe.Apply(gray,output);分区域计算并取平均// 将图像分成多个区域分别计算varsubRegionsDivideIntoRegions(src_img,4,4);varraValuessubRegions.Select(rcalcuateRA(r));doubleavgRaraValues.Average(rr.NormallizeRa);5.2 边缘效应对粗糙度影响问题描述图像边缘的陡峭变化被计入粗糙度。解决方案使用形态学边缘检测并排除边缘区域应用掩码计算内部区域粗糙度5.3 灰度范围差异问题描述不同图像灰度范围差异大影响粗糙度可比性。解决方案// 标准化灰度范围MatnormalizednewMat();Cv2.Normalize(gray,normalized,0,255,NormTypes.MinMax);5.4 噪声干扰问题描述SEM图像噪声影响粗糙度计算精度。解决方案// 增强预处理降噪Cv2.GaussianBlur(output,output,newOpenCvSharp.Size(5,5),0);// 或使用双边滤波保持边缘Cv2.BilateralFilter(output,output,9,75,75);5.5 与实际测量值对应问题描述图像粗糙度与触针测量值不完全对应。解决方案建立标定曲线将图像Ra映射到实际Ra考虑图像放大倍数进行尺度校正结合多个特征进行综合评估

相关新闻

通过ArcGIS对GlobeLand30影像镶嵌拼接并去除黑边

通过ArcGIS对GlobeLand30影像镶嵌拼接并去除黑边

通过ArcGIS对GlobeLand30影像镶嵌拼接并去除黑边 首先介绍一下GlobeLand30影像数据分幅命名规则: 南北纬缩写(1位)+6度带号(2位)+“”+起始纬度(2位)+“”+产品年代(4位)+LC(地表覆盖缩写)+分辨率(3位)。* 北纬缩写为“N”,南纬缩写为“S”。 6度代号:图幅所在…

2026/7/28 19:38:36 阅读更多 →
如何高效使用G-Helper:华硕笔记本轻量级控制工具的5个实用技巧

如何高效使用G-Helper:华硕笔记本轻量级控制工具的5个实用技巧

如何高效使用G-Helper:华硕笔记本轻量级控制工具的5个实用技巧 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zen…

2026/7/28 19:38:36 阅读更多 →
【Android-Room数据库系列】—— Room 基础

【Android-Room数据库系列】—— Room 基础

Room 数据库基础Room 简介使用Room保存本地数据到数据库中Entity 实体DaoDatabase简单案例Room 简介 Room 持久库提供了一个 SQLite 抽象层,让你访问数据库更加稳健,提升数据库性能。 该库帮助您在运行应用程序的设备上创建应用程序的数据缓存。这个缓…

2026/7/28 19:38:36 阅读更多 →

最新新闻

使用java反射机制,获取已存在类的信息

使用java反射机制,获取已存在类的信息

使用java反射机制,获取已存在类的信息 反射就是把java类中的各种成分映射成一个个的Java对象 例如:一个类有:成员变量、方法、构造方法、包等等信息,利用反射技术可以对一个类进行解剖,把个个组成部分映射成一个个对象…

2026/7/28 19:46:42 阅读更多 →
如何搭建医院陪诊陪护管理系统?本文分析陪诊系统开发全流程与核心模块详解

如何搭建医院陪诊陪护管理系统?本文分析陪诊系统开发全流程与核心模块详解

博主介绍: 所有项目都配有从入门到精通的安装教程,可二开,提供核心代码讲解,项目指导。 项目配有对应开发文档、解析等 项目都录了发布和功能操作演示视频;项目的界面和功能都可以定制,包安装运行&#xff…

2026/7/28 19:46:42 阅读更多 →
如何搭建充电桩管理系统?开发全流程与核心模块详解

如何搭建充电桩管理系统?开发全流程与核心模块详解

博主介绍: 所有项目都配有从入门到精通的安装教程,可二开,提供核心代码讲解,项目指导。 项目配有对应开发文档、解析等 项目都录了发布和功能操作演示视频;项目的界面和功能都可以定制,包安装运行&#xff…

2026/7/28 19:46:42 阅读更多 →
Bayes-SVM分类算法:原理、实现与医疗诊断应用

Bayes-SVM分类算法:原理、实现与医疗诊断应用

1. 项目概述:Bayes-SVM分类算法解析在机器学习领域,分类算法的优化一直是个热门话题。最近我在一个医疗诊断项目中尝试了Bayes-SVM(贝叶斯优化支持向量机)方法,效果出乎意料地好。这种将贝叶斯优化与支持向量机结合的方…

2026/7/28 19:46:42 阅读更多 →
C++入门核心:从程序骨架到函数与类的完整指南

C++入门核心:从程序骨架到函数与类的完整指南

1. 从“Hello World”到理解程序骨架很多朋友学C,第一步就是照着教程敲一个“Hello World”,然后看着黑框框里蹦出那几个字,感觉好像会了,又好像什么都没会。这感觉我懂,当年我也是这么过来的。今天我们不急着去搞那些…

2026/7/28 19:46:42 阅读更多 →
【JAVA课程设计/毕业设计】基于 SpringBoot 的学习行为分析的教育资源推荐系统实现 智慧在线教育资源运维与精准推荐平台【附源码、数据库、万字文档】

【JAVA课程设计/毕业设计】基于 SpringBoot 的学习行为分析的教育资源推荐系统实现 智慧在线教育资源运维与精准推荐平台【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/28 19:45:42 阅读更多 →

日新闻

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:43 阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻