hx_estimate_tilt_lr — 2D halcon_ext op

Data kinds: imagefeature

Call: fullseye.apply(img, "hx_estimate_tilt_lr", a=0.5, b=0.5) (the 2-D model is one image plus two scalar knobs a,b∈[0,1])

HALCON equivalent: estimate_tilt_lr (the HALCON reference is a useful guide to its meaning and parameters)

hx_estimate_tilt_lr: input → output

*The figure is the actual output on a synthetic 128×128 input. Left: input, right: output. Point clouds are drawn as a top-down scatter (brightness = z), 1-D series as a line plot, volumes as the maximum-intensity projection along z, videos as the middle frame, complex images as magnitude; return values that are not pictures are shown as the values themselves.*

*Knob a does not change the output (measured: identical at 0.1 / 0.5 / 0.9).*

*Knob b does not change the output (measured: identical at 0.1 / 0.5 / 0.9).*

Usage

Lee-Rosenfeld: the light-source azimuth tilt = atan2(<Ey>, <Ex>) (the mean gradient direction). Normalised to [0,1].

> The detailed description below is the original text — the summary and the headings are translated.

Sobel 勾配 `Ex(列方向)・Ey(行方向)を画像全体で平均し、tilt = arctan2(<Ey>, <Ex>)` を

`(tilt / 2π) mod 1 で [0,1) に写した np.float64` を返す。Lambertian 面で光源方位(tilt)が平均勾配の方向に

現れるという Lee-Rosenfeld の推定。

• `a, b` は未使用。

• 0 が +列方向、0.25 が +行方向(画像では下)、以下その向きに回る。平均勾配がほぼ 0 だと `arctan2(0, 0) = 0` で

0 に落ちる。

勾配の生の平均を使うので、コントラストの強い部分の方向に引きずられる。表面の反射率や形状がランダムで、照明の

傾きだけが全体の勾配の偏りを作る、という前提が要る。局所コントラストの影響を抑えた版は `hx_estimate_tilt_zc`。

角度値は周期量なので 0 と 1 付近は同じ方向(差を取るときは注意)。

Detailed usage guide

gallery2d_halcon_ext family guide

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Try it in Studio

The program below has been verified to run (same input as the figure). In Studio's help this block becomes buttons that load and run it on the spot.

hx_estimate_tilt_lr 0.50 0.50

▸ Load this pipeline  ·  Load & run

Runnable examples (verified samples that actually call this op)

gallery2d_halcon_extpy -3.11 examples/gallery2d_halcon_ext.py

Ops the type connects to (they accept feature as input)

identity · feature_to_img

Same category (halcon_ext)

hx_gen_circle · hx_gen_ellipse · hx_gen_rectangle2 · hx_gen_checker_region · hx_gen_grid_region · hx_gabor · hx_fit_surface1 · hx_fit_surface2


*Provenance: ops.py — 2D operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

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