arcsin(x)
[home] / [notes] / [Slope Histograms]

Slope Histograms

(12/1/2000)

Description

The following are the results of explorations of slope histogramming. A slope histogram is a histogram of the slopes of the gradients in a thresholded image. The following steps are used to create one:
  1. Pre-processing (smoothing, scaling, etc)
  2. Edge detection
  3. Gradient calculation
  4. Determination of the slope of the gradients (for convenience, expressed in degrees, quantized in 1degree units)
  5. Plotting and peak extraction.
Example of a scene, its slope histogram, and the peaks of the histogram.

Conclusions

The slope histogram could consistently determine the horizontal and vertical directions in the test video. It was also determined that the pixel shape (non-square) did not significantly bias histogram. This was determined by rotating the camera on a fixed scene.

This method easily found the horizontal and vertical lines (with respect to the world) as expected which allowed for gross estimation of image orientation. As is visible in the above picture, the method was not successful in finding the converging pair of lines marking the floor/wall edge. Any peak existing at those slopes in the histogram was either subsumed by the large horizontal peak or are not visible above the noise floor.

The main problem with the method is due to the non-localized nature of the histogram. The slope features show a large amount of coherence, and for features which occur often, the peak in the histogram is easily detected. The highly localized nature of features works against us in finding smaller features because the slope doesn't occur over the entire image at a frequency above the noise floor.

The non-locality of the technique yielded good results for features which dominated on that scale, and it was a liability for smaller features. This suggests that a version of this technique with histograms compiled at different scales would yield better results.