cutting op• 資料種類:rgb → table
• 呼叫: import fullseye as fs; fs.ledger.knife_edge_track(image, board_row: 'float | None' = None, win: 'int' = 6, reject_px: 'float' = 1.0, method: 'str' = 'coverage') -> 'dict'(要直接呼叫實作,import cutting; cutting.knife_edge_track(image, board_row: 'float | None' = None, win: 'int' = 6, reject_px: 'float' = 1.0, method: 'str' = 'coverage') -> 'dict';從台帳取用則 opsdrive.get("knife_edge_track"))
從正面影像求出刃口直線、刀背與刀尖(僅基於規則)。
步驟: 逐欄拾取亮度縱向台階為「暗 → 明」(刀 → 壁)的列 → 去除食材的欄(飽和度規則)及其周邊 3 px → 以覆蓋率法細化到次像素(窗口依模糊的估計放寬)→ 全最小平方直線(與 measure.fit_line 相同的公式)→ 去除殘差 > reject_px 的點後重新擬合。上側邊界(刀背與刀尖的斜線)也同樣拾取,偏離刀背直線的右側連續部分 = 斜線,與刃口線的交點 = 刀尖。被食材遮擋的欄(occluded_cols)的刃口,為從兩側擬合的一條直線的內插。
method: "coverage"(預設)或 "gradient"(微分的重心,用於比較)。回傳值: angle_deg(x 向右、z 向上的逆時針, atan2)、line(row = cy + (col − cx)·dy/dx 的全最小平方)、slope、offset、tip_rc(刀尖,找不到則 None)、n_points、rms_px、cols_used、occluded_cols。若畫面中沒有刀則為 ValueError。
• 範例資料目錄(下載 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 · cut_depth_from_side · slice_thickness_profile · cut_surface_roughness
*Provenance: cutting.py — DRIVE 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.