A method of compensating the edge positions of a signal generated by scanning elements of a bar code, the method including the steps of lighting the code and determining the light diffused by the code to generate in response a signal having a substantially alternating waveform defined by a sequence of high-amplitude portions separated by and joined to low-amplitude portions by steeply sloping edges of the waveform. A number of local minimum and maximum points of the waveform are determined to determine coordinates defining approximate edge positions. The coordinates are then corrected to generate modified coordinates, each relative to a corrected position of the edge compensating for any shift in the edge induced by blurring of the signal.