Independent Components Analysis (ICA) looks for statistical differences in multispectral data and separates the data into statistically independent sets. At times, this can reveal even more difficult-to-see text than PCA can, for example by separating underwriting from overtext or from the substrate.
ICA has two inputs, both from the same multiband image (with at least two bands):
The two images must have the same number of bands, but they can be different sizes. The region of interest cannot be larger than the input image.
Choosing a region of interest
| Argument | What it does | Default |
|---|---|---|
| nonlinearity | The contrast function ICA uses: logcosh, kurtosis or gaussian. They can give slightly different results that might reveal different characters | logcosh |
| iterations | The maximum number of iterations. ICA also stops early when the change to the transform falls below 0.00000001 | 200 |
| bandsOut | The number of output bands, M. Bands 0 to M-1 are output | as many as the input |
The larger the region of interest, the more bands, and the more iterations, the longer the computation takes.
The output is floating point, with as many bands as the input unless you set bandsOut. The bands are ordered by decreasing spatial coherence: the average correlation of each pixel with its neighbors to the right and below. Since text has high spatial correlation, the lower-numbered bands tend to reveal text, both erased and visible. Higher-numbered bands often show finer texture or noise.
Hoku's ICA was implemented in Java from the 2018 MATLAB software written by Brian Moore, University of Michigan.