1. A non-transitory computer readable storage medium encoded with a program for execution on a processor, the program when executed on the processor performing a method for locating a barcode in an image, the barcode having at least one characteristic, the method comprising acts of: a. Defining a plurality of regions in the image; b. Associating a vote accumulator with each of the regions; c. Finding pixel runs in the image, wherein a pixel run includes a group of adjacent pixels having a like binary value that are arranged linearly in a first direction in the image, the pixel run bounded linearly in the first direction by at least one pixel having a binary value that differs from the like binary value; d. Identifying, in one of the plurality of regions, two consecutive pixel runs comprising a first pixel run of pixels in the first direction and having a first binary value and a second pixel run of pixels in the first direction and having the first binary value, the two consecutive pixel runs separated in the first direction by a third pixel run of pixels in the first direction and having a second binary value, wherein the first pixel run, the second pixel run and the third pixel run are in a line, wherein each of the first pixel run, the second pixel run and the third pixel run has a run length that is consistent with the at least one characteristic; e. Adjusting the vote accumulator associated with the region where the two consecutive pixel runs are identified; and f. Identifying from among the plurality of regions, a region where the barcode is located based on the vote accumulators.