cutting op• 資料種類:rgb × scalar × scalar → table
• 呼叫: import fullseye as fs; fs.ledger.slice_thickness_profile(image, px_per_mm: 'float', board_row: 'float', z_band=None, win: 'int' = 4) -> 'dict'(要直接呼叫實作,import cutting; cutting.slice_thickness_profile(image, px_per_mm: 'float', board_row: 'float', z_band=None, win: 'int' = 4) -> 'dict';從台帳取用則 opsdrive.get("slice_thickness_profile"))
在沿刃口方向的影像中,逐列求出「食材端面」與「刀刃平面」的次像素位置,差 = 切片厚度(mm)。
將每個像素 線性分解 為 3 種顏色(背景、食材、刀刃)的比例(彩度 R − B 與亮度 2 個通道 + 和 = 1)。背景比例在端面處 1 → 0 下降,是純粹的階躍;刀刃比例在刀面處 0 → 1 上升,也是純粹的階躍,因此各視窗內的和即為邊緣位置(覆蓋率法)。模糊不會改變比例之和,因此只要將視窗依模糊估計(端面階躍的 2 階矩 σ)擴大到 ±(3σ + 1) px 就不會有偏差。即使切片比視窗薄,兩個階躍是不同的比例,也不會相互干擾。參考顏色按列在局部取得(跟隨照明的左右梯度)。刀刃的判定使用「刀刃亮度位於背景與食材之間何處」的比值,不依賴於亮度倍率(gain)。
端面和刀面應各自位於直線上:剔除偏離超過 1.5 px 的列,偏離超過 3 成則 ValueError(不會默默地出錯)。z_band:以 (z_lo, z_hi) mm 限定使用的列(用於排除單刃刀的刃部)。回傳值:z_mm、thickness_mm(逐列)、mean_mm、lean_deg(刀面相對鉛直的傾角,atan2)、face_line、end_line、n_rows、n_rejected、blur_px。
• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。
• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。
• 演算法的正典(作者、年份)與用途見上面的族使用指南。
• poc_food_cutting_measure — py -3.11 examples/poc_food_cutting_measure.py
table 作為輸入)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
cutting)cutting_scene · cutting_face_render · cutting_edge_render · cutting_episode_synth · cutting_wrist_mjcf · knife_edge_track · cut_depth_from_side · cut_surface_roughness
*Provenance: cutting.py — DRIVE 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.