As part of my research I am designing intelligent image decomposition algorithms that split an image into sub-images in a way that best captures important image structure. Natural images have structure. Understanding this structure and being able to decompose an image in a way that respects this structure is an important aspect of computational image processing.
The algorithm used here recursively cuts an image into smaller rectangular pieces. For each cut, a larger rectangle is divided either horizontally or vertically into two equal smaller rectangles. This results in a division of the input image into many rectangular pieces, similar to those shown, organized into a data structure called a dyadic tree.
For each input image, our algorithm finds the dyadic tree that gives the most concise representation of the image as measured by its Haar wavelet transform coefficients computed on this tree. We have shown that this optimal tree provides the best approximation of the sublevel sets of the image and is useful in tasks such as removing unwanted noise in the image.
To visualize how the decomposition algorithm works, I developed computer code that displays the resulting dyadic tree. The input image has been automatically cut into local rectangular pieces in a way carefully designed to achieve a useful global optimality.
For clarity, only a partial decomposition of the input image has been shown. This visualization reminds us of the inspirations we receive from nature: that harmony is required between division and unity.