cutting oprgb × scalar × scalar → tableimport 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 に広げれば偏らない。 切片が窓より薄くても、2 つの段は別々の割合なので干渉しない。参照の色は行ごとに局所で取る(照明の左右勾配に追従)。 刃の判定は「刃の輝度が背景と食材の間のどこにあるか」の比で行い、明るさの倍率(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。
py -3.11 examples/poc_food_cutting_measure.pytable を入力に取れる)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 operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.