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.