A bar code reader includes a first and second memory arrangement in which a two dimensional image containing the image of a bar code symbol at a random location and orientation is stored in a first memory. Thereafter, the contents of the first memory is processed by a specialized controller to determine whether any portion of the stored image is likely to contain a bar code symbol, and if so, at what location. If a bar code symbol is located, then the portion of the image stored in the first memory which has been identified as likely to contain a bar code symbol is transferred to a second memory. In the second memory, the stored image is processed by a digital signal processor in order to orient, filter and scan the stored bar code image. The present dual processor, dual memory arrangement permits the performance and cost of an omnidirectional bar code reader to be optimized by chosing the memory type and the particular processor most suitable to the processing algorithm for each of the bar code image processing tasks.