annotate3d op• 数据种类:image2d → image2d
• 调用: import fullseye as fs; fs.ledger.annotate3d_axes(img, pose, K, origin=(0.0, 0.0, 0.0), length=1.0, depth=None, labels=('X', 'Y', 'Z'), colors=('wrong', 'right', 'reference'), width=2, font_size=11, occlusion_tol=0.01, scheme='okabe_ito', font_path=None)(要直接调用实现,import annotate3d; annotate3d.annotate3d_axes(img, pose, K, origin=(0.0, 0.0, 0.0), length=1.0, depth=None, labels=('X', 'Y', 'Z'), colors=('wrong', 'right', 'reference'), width=2, font_size=11, occlusion_tol=0.01, scheme='okabe_ito', font_path=None);从台账取用则 ops3d.get("annotate3d_axes"))
返回图像(image2d):从 origin 投影绘制 object 坐标(pose 的输入侧)的三轴(gnomon)。
ValueError
length 非正、原点或轴端在相机后方、labels/colors 不是 3 个、
轴的文字放不进图像、原点与轴端都在图像外。
步骤: 投影 origin 以及从它沿 object 坐标 +X / +Y / +Z 方向前进 length 的 3 个点(与 annotate3d_project 相同的约定),从原点像素向各轴端像素绘制 annotate.arrow(箭头尖 8x6 px)。在轴端之外 0.7 * font_size px 的位置以无背景(box_alpha=0)的文字放置 labels[i]。
参数:
• origin (3,)(object 坐标),length: 轴的长度(网格单位,> 0)。
• labels: 3 个字符串(默认 ("X", "Y", "Z"))。colors: 3 种颜色(角色名或 RGB。默认 ("wrong", "right", "reference") 是调色板的角色名)。
• width: 线宽 [px],1 以上的整数。font_size [px]。
• depth / occlusion_tol: 会传给投影,但本 op 不做遮挡显示(虚线)(判定只用于 depth 的形状检查)。
返回值: 绘制后的新图像(float64 [0, 1])。
报错条件: length <= 0 / labels 或 colors 的长度不是 3 / 原点或任一轴端 z <= 1e-9 / 位姿、K、depth 不正确 / 轴的文字放不进图像 / 原点与轴端都在图像外(annotate.arrow 会拒绝)。只有轴端在框外时照常绘制(箭头朝框外画出)。与视线重合而塌缩成点的轴(像素长度小于 1e-9)会被静默跳过。
用途: 说明图的位姿(gnomon)。把 render3d.look_at 的 pose 原样传入,把 origin 放在网格的质心或 bounds 的角上。
坐标系:origin 和轴的方向都在 pose 所映射的源坐标系(object 坐标)中解释。look_at 的 pose 是 world→camera,所以此时就是 world 的轴。传入包含物体姿态 M(object→world)的 pose @ M,则画出物体的轴。
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
• annotate3d_figure — py -3.11 examples_3d/annotate3d_figure.py
image2d 作为输入)fuse_to_voxel · fit_poly_surface · eval_poly_surface · surface_form_error · background_flatten · polar_unwrap · fit_zernike · matcap_shade
annotate3d)annotate3d_project · annotate3d_arrow · annotate3d_label · annotate3d_scale_bar · annotate3d_bbox · annotate3d_measure
*Provenance: annotate3d.py — 3D 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.