fullseye

riesz_transform — QUAT riesz op

使い方

The 2-D Riesz transform of an image, as a pure quaternion field. → (H, W, 4).

The isotropic generalisation of the Hilbert transform: a pair of filters with frequency responses -i*u/|w| and -i*v/|w|, returned as the quaternion (0, R1 f, R2 f, 0). It is the 2-D object that has no complex analogue — the 1-D analytic signal needs a direction to say which way “90 degrees later” is, and in 2-D there is no single direction, so the answer needs two components and therefore an algebra with room for them.

Closed form, which is how this is tested rather than eyeballed

For a grating cos(2*pi*(u0*x + v0*y)) sampled on the DFT grid,

``R1 = (u0/|w0|) * sin(2*pi*(u0*x + v0*y))``,
``R2 = (v0/|w0|) * sin(...)``

exactly. Measured over a table of eight grid-exact orientations from 0 to 159.4 degrees on a 64x64 frame, the largest absolute deviation from that closed form is 6.1e-15, and the orientation recovered through :func:monogenic_orientation matches the grating’s to 3.6e-15 rad at every one of them. There is no tolerance to choose.

Note the scalar component is 0, so this is the Riesz transform and not the monogenic signal — feeding it to :func:monogenic_phase gives pi/2 everywhere, correctly but uselessly. Use :func:monogenic_signal, which keeps the band-pass image in the scalar slot.

Raises ValueError: image is not a finite real (H, W) array with H, W >= 2, or exceeds :data:MAX_PIXELS.

詳しい使い方ガイド

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(qimage を入力に取れる)

quaternion_to_rgb · quat_norm · quat_conjugate_image · quat_normalize_image · quat_image_multiply · monogenic_amplitude · monogenic_phase · monogenic_orientation

同カテゴリ(riesz)

monogenic_signal · monogenic_amplitude · monogenic_phase · monogenic_orientation


Provenance: quatimage.py — QUAT operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

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