revolution_volume_side — DRIVE scoop op

• 数据种类:image2d × scalar → table

• 调用: import fullseye as fs; fs.ledger.revolution_volume_side(side, pitch: 'float', *, axis_col: 'float | None' = None, threshold: 'float' = 0.5) -> 'dict'(要直接调用实现,import scoop; scoop.revolution_volume_side(side, pitch: 'float', *, axis_col: 'float | None' = None, threshold: 'float' = 0.5) -> 'dict';从台账取用则 opsdrive.get("revolution_volume_side"))

用法

由 1 张侧视图像在假定轴对称下求体积 —— Pappus 形式 V = π Σ |x − x_axis| c(x, z) pitch³(c = 覆盖率,x = 像素中心所在列)。

因为对覆盖率是 线性 的,即使平坦粉面在行中途穿过的行也不会偏(以每行宽度为直径的圆盘之和 Σ π (w/2)² 会把充满度 f 的行按 f² 计,偏低 1.5 %,实测)。噪声先在物体外和内消除(_clean_coverage)。若不给出轴 axis_col(像素边缘为整数),则取覆盖率重心所在的列。对各行重心拟合直线, 同时返回轴的倾角 axis_tilt_deg(atan2)(倾斜的碗体积会增大;判断由调用方进行)。

返回: V [pitch 单位的 3 次方]、V_px、V_discs(圆盘之和,用于比较)、radius_px(每行的半宽)、axis_col、axis_tilt_deg、rows_used、height_px。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 · two_view_volume · scoop_volume_read · scoop_count · scoop_image_limit · tilt_wedge_retained · tilt_pour_rate


*Provenance: scoop.py — DRIVE 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.