What it does.
ICA reads a multiband image, computes an Independent Components Analysis transform from a user‑selected ROI, then applies that transform to the full input image. Use ICA when you want to separate statistically independent sources (e.g., underwriting vs. overtext/substrate) that may be mixed across bands.
When to use ICA vs. PCA/MNF (at a glance).
*Hoku reads the image twice internally: first the ROI to estimate the transform, then the full image as input to receive the final transform.*
Choosing an ROI for ICA * Pick an ROI that actually contains the features you hope to separate (e.g., underwriting + overtext). * Larger ROIs and more bands can make the transform more stable, but will increase compute time. * If separation looks unstable, try a slightly different ROI (position/size) and/or a different nonlinearity (below).
| Parameter | Meaning | Default / Notes |
|---|---|---|
| nonlinearity | Contrast function used by ICA. Options: logcosh (default), kurtosis, gaussian. | Start with logcosh; try others if separation is poor. |
| iterations | Maximum iteration count for transform estimation. | 200 |
| tolerance | Early stop when change in transform falls below threshold. | 1e‑8 |
| bandsOut | Number of output bands to create. | By default equals number of input bands; you may request fewer. |
Interpreting bands.
Lower‑index ICA bands tend to emphasize spatially coherent structure (e.g., text strokes); higher‑index bands often show finer texture or noise.
ICA estimates a linear unmixing transform that produces statistically independent, typically non‑Gaussian components. The transform is computed from the ROI using the chosen contrast function (nonlinearity) and iterative updates until the tolerance is met or iterations is exceeded. Hoku then applies the final transform to the full input image.