scoop op• 資料種類:image2d × scalar × scalar × scalar × scalar → table
• 呼叫: import fullseye as fs; fs.ledger.tilted_surface_read(side, lip_row: 'float', lip_col: 'float', theta_deg: 'float', L_px: 'float', *, wall_px: 'float | None' = None, threshold: 'float' = 0.5, shell_px: 'float' = 0.0, smooth_px: 'int' = 1) -> 'dict'(要直接呼叫實作,import scoop; scoop.tilted_surface_read(side, lip_row: 'float', lip_col: 'float', theta_deg: 'float', L_px: 'float', *, wall_px: 'float | None' = None, threshold: 'float' = 0.5, shell_px: 'float' = 0.0, smooth_px: 'int' = 1) -> 'dict';從台帳取用則 opsdrive.get("tilted_surface_read"))
從傾斜容器的側視影像(覆蓋率)讀取容器內殘留粉體的截面積及後部平坦面的高度。
容器座標: 以口部(lip_row, lip_col,像素邊緣為整數)為原點,沿底面向裡為 x(口部降低、傾斜 θ 的底面 = 在影像中向右上升),垂直於底面為 y。0 ≤ x ≤ L_px 且 0 ≤ y ≤ wall_px(None = L_px)內覆蓋率之和即為截面積 [px²] (口部外的流動不計)。顆粒側面像的輪廓是顆粒外側的包絡,因此沿自由表面會多出厚約 1 個顆粒半徑的殼 —— 也回傳減去 shell_px(傳入顆粒半徑 [px])× 自由表面長度(容器內各欄粉面以 smooth_px 欄移動平均後的折線長度)的 area_corrected。裡面平面的高度 plateau_px = 容器後半部粉面距底面高度的中位數(在楔模型中,θ < θ_b 期間這裡不變; 實際的層會流動變薄 —— 在 PoC 中觀察)。
回傳: area_px, area_corrected, surface_len_px, plateau_px(後半部沒有粉面則為 None)。Raises ValueError: 不是覆蓋率 / 容器內為空 / 參數範圍。
• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。
• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。
• 演算法的正典(作者、年份)與用途見上面的族使用指南。
• poc_powder_scoop_pour — py -3.11 examples/poc_powder_scoop_pour.py
table 作為輸入)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
scoop)spoon_bowl_volume · scoop_synth_side · revolution_volume_side · two_view_volume · scoop_volume_read · scoop_count · scoop_image_limit · tilt_wedge_retained
*Provenance: scoop.py — DRIVE 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.