ObjectFinder is software that identifies moving, or changing objects in a series of images. These images must have been taken from a very stable platform or stabilized with registration software such as ImageTracker. All images must have the same size. If the images are of a road, it helps if the road runs from left to right through the image.
For each image in the series:
The background computation is performed once for each group of 10 input images. This reduces the number of times that a background images must be computed and, in case some bits of the computed background images inadvertently contain some moveable objects, these will be stationary during those 10 images. Filtering out these is easy exactly because these unwanted objects do not move.
The background image is the median of a series of input images. for image N, this series is centered around
base = int(N / 10) * 10 + 5
Then the series is
base + skip, base - skip, base + 2 * skip, base - 2 * skip, base + 3 * skip ...
The value of skip can be changed by the user (default is 10). The maximum number of images selected can also be set by the user (default is 21).
If this list would select images that are outside the available range, these are skipped. Up to a user-settable maximum number of images are loaded. If the Filter check box is checked, these images are compared to the reference image and only the 50% that are most similar to the reference image are used. Otherwise all loaded images are used. The background is computed for each pixel by taking the median value of that pixel in the used images. If the images are color images, this is done separately for the R, G and B channels.
The difference image is computed by subtracting (pixel by pixel) the computed background image from an input image. The resulting range of pixel values is remapped to 0..255 by adding 255 and dividing by 2.
The next step is an (optional) brightness leveling operation. For each column of pixels the median brightness is computed and corrected to 127. This appears to be beneficial for road images where the road runs from left to right and occupies most of the height of the image.
Next an (optional) equalize histogram operation is applied. This operation computes the brightness distribution and corrects it so that each brightness value occurs in approximately the same number of pixels.
Objects to be detected are areas that have brightness values below a minimum or above a maximum value. The default values are 10% and 90% (user changeable). For color images the filtering and object detection is done separately for each color plane.
Groups of pixels in the extremes of the brightness range are detected and then cleaned up using dilation and erosion operations. These operations can be carried out on the 4-neighborhood (indicated by the letter d, or e) or on the 8-neighborhood (indicated by the letter D, or E). The default set of operations is EEDD.
Next, the resulting blobs that do not meet minimum size requirements are removed. By default the minimum size is 4 x 4 pixels.
An optional Remove shadows operations deletes dark blobs that are adjacent to light blobs. (It is assumed that shadows are always darker than the normal background.) Separation is measured by octagonal bounding boxes. The octagonal bounding box is the smallest octagonal shape with sides at 0°, or 45° from the coordinate system axes that contains all pixels of a blob.
Next, blobs that are very closely spaced according to their bounding boxes are merged into bigger blobs. The minimum spacing is user settable (default 4 pixels).
For color images, these operations are done separately for each color plane and at the end, blobs in different color planes are combined when they are separated by less than the minimum separation distance.
The main window contains 5 areas:
Click on the Select first image file ... button, navigate to the directory containing the images and select the first image file.
Then click on the Select last image file ... button and select the last image file.
The list of image file name should be populated, and after a few seconds the images in the right part of the window should appear.
If these images are larger than the available area, scroll bars appear (only) in the blobbing area. These scroll bars scroll all four images simultaneously.
All the default values mentioned earlier can be adjusted. The effects are computed when focus changes to another control (press the tab key, or use the mouse to select some other control). It is common that for the first few dozen images the background image contains some (partial) objects that are not part of the background. Varying the Count and Skip values may help. Usually, the results are worst for the first and last hundred images of the series because the images used to compute the background are further apart from the current image. The user may select another image in the Input image files list to observe how the quality of the computed background varies.
Click on the Run button to run the object finder on all images in succession and save the results. Running can be interrupted with the Cancel button.
The results are saved as text files in the same directory as the input images files. The file names are the same, the file type is "txt". Each output file contains two lists of blobs; dark blobs and light blobs. Each group is preceded by a line "Dark blobs:" respectively "Light blobs:". Each blob is described in one line consisting of 12 tab-separated fields: