tb_monogenic_orientation — 2D typed op

数据种类:qimageimage

调用:fullseye.apply(img, "tb_monogenic_orientation", a=0.5, b=0.5)(2-D 的模型是一张图 + 两个标量旋钮 a,b∈[0,1])

用法

单演信号的局部方向 `atan2(R2, R1)`。→ (H, W)。

> 以下的详细说明为原文 —— 摘要与标题已翻译。

Radians in `[0, pi): an orientation is defined modulo pi` (a grating at

10 degrees and one at 190 degrees are the same grating), and the value is

folded into that range rather than left in `(-pi, pi]` where the same

structure would read as two different numbers on either side of a contrast

reversal. `display=True maps it to [0, 1]`.

Continuous, not quantised — the angle is read directly from two filters,

for any angle, where a steerable bank with `K` orientations interpolates

between its `K`. Measured against eight grid-exact grating orientations the

error is at most 3.6e-15 rad, including the obliques. (Whether that

buys anything downstream is a separate question, and the measured answer is

mostly *no* — see :func:riesz_displacement.)

Where it is undefined, and the mask is not the one you expect. The

orientation dies where the *Riesz vector* dies, which is at every

even-symmetric point — local phase 0 or pi, the crest of a bright or dark

line — and the amplitude is at full strength there. Measured on a 45-degree

grating, the worst orientation error over the whole frame is 0.2764 rad, at a

pixel where `|R| = 6.8e-16 and :func:monogenic_amplitude` reads

`1.0000`. So masking on the amplitude does not protect you; mask on

`hypot(q[..., 1], q[..., 2])`, the Riesz magnitude. With that mask the

error over the same eight orientations is at most 3.6e-15 rad.

Where the Riesz vector is exactly zero, `atan2(0, 0) = 0` is returned —

a *value*, not a measurement.

Raises `ValueError`: the input is not a valid quaternion field, or its

`k` component is non-zero; *display* is not a bool.

Typed bridge of the quat op `monogenic_orientation into the 2-D evolution registry: the same implementation, called under the op(v, a, b) convention. This op has no tunable parameter; a and b` are unused.

参考(示例数据・文献)

• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。

• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。

可运行的示例(实际调用该算子并已验证的样例)

• (暂无)

类型可衔接的下一个算子(可接受 image 作为输入)

identity · gaussian · mean_box · bilateral · unsharp · median · min_filter · max_filter

同类别(typed)

tb_points_to_voxel · tb_estimate_point_normals · tb_iss_keypoints · tb_angle_3points · tb_project_points · tb_render_point_depth · tb_statistical_outlier_removal · tb_radius_outlier_removal


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

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