algebra op• Data kinds: qimage × qimage → qimage
• Call: import quatimage; quatimage.quat_image_multiply(qimage, other, side) -> 'np.ndarray' (or opsquat.get("quat_image_multiply"))
Hamilton product of a quaternion image with a quaternion or a field. → (H, W, 4).
`side="left" computes other * qimage; side="right"` computes
`qimage * other. **There is no default** — see :func:_require_side`. The
two results are genuinely different objects, not a sign convention: measured
on a standard-normal `(32, 32, 4)` field against a unit rotor,
`max|left - right| = 3.143 and mean|left - right| = 0.4948` on data
whose own extreme is 3.372 — that is, the two answers differ by as much as
the data itself. Neither raises, neither is NaN, and both look like a
perfectly good quaternion image.
*other* is either a single quaternion (a `(4,)` array-like) or a full
`(H, W, 4)` field of the same shape; anything else is refused rather than
broadcast, because NumPy would happily broadcast a `(H, 4)` array along the
wrong axis and produce an image-shaped answer to a different question.
Raises `ValueError`: either input is not a valid quaternion field;
*other* is neither `(4,) nor exactly qimage`'s shape; *side* is not
`'left' / 'right'`.
• quaternion_monogenic family guide
• 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.
• quaternion_monogenic — py -3.11 examples/quaternion_monogenic.py
qimage as input)quaternion_to_rgb · quat_norm · quat_conjugate_image · quat_normalize_image · monogenic_amplitude · monogenic_phase · monogenic_orientation · quat_color_rotate
algebra)quat_conjugate_image · quat_normalize_image
*Provenance: quatimage.py — QUAT 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.