Install
openclaw skills install @xrayxiaoruiyang-pixel/afm-image-analysis-1-0-0Analyze AFM images to compute surface roughness, detect nanoparticles, extract line profiles, generate 3D renderings, and process batches with detailed reports.
openclaw skills install @xrayxiaoruiyang-pixel/afm-image-analysis-1-0-0AFM图像分析工具 — 表面粗糙度、纳米颗粒统计、线轮廓、3D可视化、批量处理
# 单文件
python ~/.openclaw/skills/afm-image-analysis-1.0.0/scripts/analyze_afm.py sample.afm -o ./output
# 批量目录
python ~/.openclaw/skills/afm-image-analysis-1.0.0/scripts/analyze_afm.py ./afm_data/ -o ./output -r
# 带线轮廓(px坐标)
python analyze_afm.py sample.npy --profile 100,50,400,250 -o ./out
| 格式 | 说明 |
|---|---|
.npy/.npz | NumPy 二进制数组(推荐) |
.txt/.csv/.asc/.dat | 文本矩阵,空白分隔或CSV |
.jpg/.png/.tif | 图像文件(灰度→高度映射) |
⚠️ 图像模式默认 1 gray level = 1 nm,用
--scale调整。
Ra(nm) — 算术平均粗糙度(最常用)
Rq(nm) — 均方根粗糙度
Rpv(nm) — 峰谷总值 (max−min)
Rsk — 偏度(对称性)
Rku — 峰度(分布锐度)
Ra_g(nm) — 高斯滤波粗糙度
步骤:①一阶平面拟合去倾斜 ②计算粗糙度参数
指定两个像素坐标,提取沿线的 높이变化曲线:
--profile x1,y1,x2,y2
LightSource shading,颜色映射 terrain,垂直夸张 2×。
# 递归扫描
python analyze_afm.py ./afm_data/ -r -o ./afm_results/
每个输入文件生成独立子目录({文件名}/):
| 文件 | 内容 |
|---|---|
afm_heatmap.png | AFM高度热图 |
afm_3d.png | 3D表面渲染图 |
roughness.png | 粗糙度参数柱状图 |
roughness.csv | 粗糙度数据表 |
particles_annotated.png | 颗粒标注图 |
particle_hist.png | 颗粒直径/高度分布直方图 |
particles.csv | 颗粒详细数据 |
line_profile.png | 线轮廓截面图 |
report.json | 完整JSON报告 |
根目录额外输出:summary.csv(多文件汇总表)
| 参数 | 说明 | 默认值 |
|---|---|---|
--threshold | 颗粒检测阈值(%) | 20 |
--min-size | 最小颗粒面积(px) | 10 |
--scale | 灰度→nm比例 | auto/1.0 |
--no-3d | 跳过3D渲染 | False |
-r | 递归扫描子目录 | False |
催化剂薄膜粗糙度评估:
python analyze_afm.py catalyst_film.npy -o ./results
# → 查看 Ra/Rq 判断表面平整度(Ra<5nm 很平整,Ra>30nm 较粗糙)
纳米颗粒尺寸统计:
python analyze_afm.py nano_particles.npy --threshold 25 --min-size 15 -o ./np_stats
批量对比不同样品:
python analyze_afm.py ./sample_series/ -r -o ./compare/
# → 对比 summary.csv 中 Ra/Rq 值