measure op• 数据种类:signal → table
• 调用: import fullseye as fs; fs.ledger.profile_params(p, dx=1.0, n_sampling=5)(要直接调用实现,import roughness; roughness.profile_params(p, dx=1.0, n_sampling=5);从台账取用则 opsroughness.get("profile_params"))
截面粗糙度参数 Ra/Rq/Rz/Rt/Rp/Rv/Rsk/Rku(ISO 4287)。
参数
p 经过带通处理的轮廓(一维)。
dx 采样间隔。对参数本身没有影响,但报告 sampling_length 时
需要(没有单位就无法写出 Rz 的条件)。
n_sampling 取样长度的分段数。ISO 4287 的默认值为 5。
★ 同时返回 Rz 和 Rt 两者 —— 在这里消除定义差异 ISO 4287 的 Rz 是“将评定长度 n_sampling 等分,对各区间的最大峰高 + 最大谷深取平均”。而 Rt 是整个评定长度上的最大高低差。同一轮廓上两者的值也不同,而且随文献和仪器不同, “Rz”指哪一个并不统一。两者都返回就不会搞混。
实测(512 点,以 λc=80 µm 截止的轮廓。选取了含 1 条深划痕的行):
Rz(5 个区间的平均) 1.5076
Rz_max(区间的最大) 5.4706
Rt(整个评定长度) 5.4706
Rt / Rz 3.63
划痕只在 1 个区间内,所以 5 个区间的平均把划痕的贡献稀释为 1/5。同一轮廓上相差 3.6 倍的数字,都被称为“Rz”。 从同一行中只去掉划痕,Rt/Rz 降至 1.21 —— 只有存在孤立特征时差距才会拉开,所以 “在我们的仪器上一致所以相同”只是还没碰到反例而已。
★ 陷阱 —— 单条轮廓的 Rz 不能代表面的 Sz 在加工纹理沿行方向的面上(512x512,4 条深划痕,λc=80 µm),每个方向各取 171 条轮廓的实测:
• 与纹理正交的列方向的 Rq 是平行的行方向的 2.67 倍 (0.1853 对 0.0694)。同一表面、同一仪器,仅方向不同。
• 行方向的 Rt 最小 0.2765 / 最大 5.4706,离散达 19.8 倍。
• 达到面 Sz(5.9694)80 % 的轮廓 171 条中仅 6 条(3.5 %)。
Rq 用几条就够,Rz 则不够 —— 即使是同样的一维轮廓, 各参数所需的条数也不同。 报告 Rz 时务必附上条数和方向。
定义细节(在此明示与标准的偏离)
• 基准线是整个评定长度的平均线(不是最小二乘直线)。倾斜应预先用 surface_form_remove 或 surface_filter 去除。
• Rp / Rv / Rsk / Rku 在整个评定长度上计算(不是区间平均)。
• 评定长度不能被 n_sampling 整除时舍弃余数。舍弃的点数由 dropped_samples 返回。
fail-closed(失败即拒绝)
• 不是一维 / 少于 8 点 / 含 NaN 或 Inf。
• n_sampling 小于 1,或每个区间少于 4 点。
• 轮廓完全平坦(Rq=0)。
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
• 算法的正典(作者、年份)与用途见上面的族使用指南。
• poc_food_cutting_measure — py -3.11 examples/poc_food_cutting_measure.py
• poc_surface_roughness — py -3.11 examples/poc_surface_roughness.py
table 作为输入)—
measure)*Provenance: roughness.py — ROUGHNESS 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.