spyrit.misc.dual_arm

Module designed for the dual-arm single-pixel camera.

This module contains several classes:
  • KeyPoints: determines the key points between a CMOS camera and a single-pixel camera.

  • ComputeHomography: computes the homography matrix between the two camera views.

  • MotionFieldProjector: reads the CMOS motion fields from Nifti files and projects them to the single-pixel camera point of view using the computed homography.

Practical examples of usage can be found in the spyrit-examples repository.

In particular, the following scripts in the 2025_dynamic_TIP folder treat experimental data acquired with the dual-arm single-pixel camera and use the classes from this module for calibration and motion estimation: fig_07.py, fig_08.py, fig_09_10.py, fig_11_ablation_channels.py, fig_11_spectra.py, and fig_12.py.

References:

[Maitre2024_1] Maitre, T., Bretin, E., Mahieu-Williame, L., Sdika, M., & Ducros, N. (2024, May). Hybrid single-pixel camera for dynamic hyperspectral imaging. In 2024 IEEE International Symposium on Biomedical Imaging (ISBI) (pp. 1-5). IEEE. DOI:10.1109/ISBI56570.2024.10635884

[Maitre2026] (Submitted to TIP) Maitre, T., Bretin, E., Mahieu-Williame, L., Phan, R., Sdika, M., & Ducros, N. (2025). Dual-arm motion-compensated single-pixel imaging. HAL Id: hal-05068181

Functions

recalibrate(X, shape, homography_inv[, amp_max])

Recalibrate tensor X using inverse homography transformation.

Classes

ComputeHomography(data_root, data_folder, ...)

Computes the homography between the two arms of the hybrid single-pixel camera using a Direct Linear Transform (DLT) [Maitre2024_1].

KeyPoints(src_img, dest_img[, homo_folder])

Detects and manages keypoints between two camera views.

MotionFieldProjector(deform_path, ...[, ...])

Projects the motion fields from the CMOS camera perspective to the single-pixel camera (SPC) perspective.