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.