1. A computer implemented method, comprising: receiving a degraded image of a first barcode; generating an image intensity profile of the degraded image, wherein the image intensity profile is generated by averaging or integrating a number of scan lines; searching a population of barcodes, the searching including selecting a candidate barcode from the population of barcodes and comparing a degraded version of an ideal image intensity profile of the candidate barcode to the image intensity profile of the degraded image; and selecting a final barcode from the population of barcodes based on the comparison.