Subsections


Area Change Detection

These routines detect large-scale changes between two or more images; large-scale implies that they are not tailored to detecting differences in point targets between images. The images to be scanned for changes must be provided as layers in a single multi-layer image (if your images are separate use the tools/Layer Operations option in the GUI to merge them into a single multi-layered image). The routines use the segmentation of each layer to carry out their analysis, and this must be provided too. In most cases the ``joint segmentation'' produced by segmenting the multilayer image is what will be conveniently used; but if (for example) you are interested in changes in field boundaries, then segment each layer separately and merge the individual segmentations into a multi-layer image before calling the change detection routine.


The change_detection routine

change_detection looks for significant change over a series of original speckled images. The routine detects changes across the whole series of provided image layers - the ordering of the layers in the multiple layer image file is not important. The output is a single layer image specifying where any significant changes were found over the whole sequence. If you are more interested in the individual changes found between adjacent pairs of layers in the input image, use routine change_detection_position.

Figure 4.10 shows an example sequence of four multi-temporal images. The changes detected by change_detection (at the default level of significance) are shown in figure 4.11(a).

Full Python script and function syntaxes are given in section A.4.7.

Figure 4.10: Multi-temporal sequence of SAR images.
\includegraphics[width=2.8in,height=2.8in]{figures/using/simdat1.ps} \includegraphics[width=2.8in,height=2.8in]{figures/using/simdat2.ps}

Figure 4.10(a) Figure 4.10(b)
\includegraphics[width=2.8in,height=2.8in]{figures/using/simdat3.ps} \includegraphics[width=2.8in,height=2.8in]{figures/using/simdat4.ps}

Figure 4.10(c) Figure 4.10(d)


The change_detection_position routine

This routine detects changes between adjacent pairs of layers in the provided image - the ordering of the layers in the multiple layer image file is therefore crucial. The output is a multiple layer image with number of layers equal to the number of adjacent pairs in the sequence of layers in the original image (i.e. number of layers minus 1). Each of these layers indicates where significant changes were found between the image pair. This routine is useful for example when monitoring the growth of crops over the seasons. Figure 4.11 shows an example application of this routine with respect to the sequence of images of figure 4.10.

If you are interested solely in whether there are changes over the whole sequence of layers in the input image, use routine change_detection.

Full Python script and function syntaxes are given in section A.4.8.

Figure 4.11: Detecting changes in the sequence of images of Figure 4.10. (a) Result of change_detection. (b) Result of change_detection_position between Figures 4.10(a) and 4.10(b). (c) Result of change_detection_position between Figures 4.10(b) and 4.10(c). (d) Result of change_detection_position between Figures 4.10(c) and 4.10(d).
\includegraphics[width=2.8in,height=2.8in]{figures/using/cd1.ps} \includegraphics[width=2.8in,height=2.8in]{figures/using/cdp1.ps}

Figure 4.11(a) Figure 4.11(b)
\includegraphics[width=2.8in,height=2.8in]{figures/using/cdp2.ps} \includegraphics[width=2.8in,height=2.8in]{figures/using/cdp3.ps}

Figure 4.11(c) Figure 4.11(d)

InfoSAR Ltd