algebra op• Data kinds: qimage × qimage → qimage
• Call: import fullseye as fs; fs.ledger.quat_image_multiply(qimage, other, side) -> 'np.ndarray' (to call the implementation directly, import quatimage; quatimage.quat_image_multiply(qimage, other, side) -> 'np.ndarray'; from the registry, 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 _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.