Our system, which is implemented in MATLAB, takes as input a color image which it passes through a series of processing stages before outputting the same image with small crosses indicating the centers (approximately) of doors in the image and superimposed boundary lines for these doors. The stages used are color filtering, object extraction, shape finding, and recognition. We briefly describe each stage.
The first and most important stage filters out of the image any pixels with colors sufficiently far from a specified basis color. This basis color was determined by experiments and is automatically adjusted for some of the possible lighting conditions. The result of this stage is a B/W image where those pixels passing the threshold are white.
Next, we use a labeling algorithm to aggregate pixels into distinct objects. Those objects whose mass (number of pixels) passes a threshold are delivered to the next stage (each object is handled separately from this point on).
For each object we find the edges of the B/W image and use the Hough Transform to find equations for these lines. If two of these lines are close to vertical and are sufficiently far apart, we decide the object is a door. In this case we draw all the lines (including those that do not correspond to the door's boundary) on the original image and position a cross at the center of mass of the object. This image is the final result of the algorithm.
Next: Assumptions and issues
Return to Table of Contents