Abstract:
An optical reader that is configured for classifying an image. The optical reader includes an image analysis component that is configured for classifying the image by evaluating a result of attempting to locate and process a portion of the image as graphical symbol, and configured for classifying the image as an image including a graphic symbol if and when attempting to locate and process a portion of the image as graphical symbol is successful, and configured for classifying the image as an image excluding a graphic symbol if and when attempting to locate and process a portion of the image as graphical symbol is unsuccessful.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
   This is patent application is a divisional of U.S. patent application Ser. No. 10/764,741 filed on Jan. 26, 2004, which is a continuation of U.S. patent application Ser. No. 09/904,697 filed Jul. 13, 2001 and issued as U.S. Pat. No. 6,722,569 on Apr. 20, 2004, the benefit of priority to the above aforementioned patent applications under 35 U.S.C. §120 is hereby claimed. The content of the above aforementioned applications are relied upon and are incorporated herein by reference in their entirety. 

   FIELD OF THE INVENTION 
   The present invention relates generally to optical readers, and particularly to optical readers employing color imagers. 
   BACKGROUND OF THE INVENTION 
   Optical indicia readers equipped to read one-dimensional or two-dimensional bar code symbols are well known in the art. There are a number of optical character recognition systems on the market as well. In addition, many financial institutions today employ computer-driven signature capture systems. Many of these systems employ monochrome imagers because monochrome imagers are well-suited to read graphical symbols, such as bar codes, OCR symbols, or signatures. 
   On the other hand, the ability to provide image capture functionality along with indicia reading in one device is very appealing. Currently, optical readers having image capture functionality use monochrome imagers that provide gray scale images. While such devices are useful, gray scale images are less desirable than color images for viewing purposes. The public has come to expect color imaging. Further, monochrome images are often less distinct and not as informative as color images. 
   Unfortunately, there are problems associated with using color imaging systems to read graphical symbols. The first problem relates to the difficulty of distinguishing bi-tonal indicia in a color image. Because color imagers provide more information that bi-tonal indicia readers can use, color imaging data is often confusing to graphical symbol indicia readers. One way to solve this problem is to convert the color imaging data into gray-scale data. However, commercially available methods for converting color images to gray-scale are too slow for high-volume scanning. Thus, an optical reader employing a color imager with a gray scale converter would be slower and more expensive than an optical reader using monochrome imager because of the additional processing required. 
   Thus, a need exists for an inexpensive optical reader that is capable of performing color photography and evaluating graphical symbols. This optical reader must be capable of automatically determining whether an image includes a graphical symbol or is merely a color photographic image, and process the acquired color imaging data based on that determination. A need also exists for an optical reader that is able to associate an acquired color image with any subsequent acquired color image. 
   SUMMARY OF THE INVENTION 
   The invention provides for an optical reader that is configured for classifying an image. The optical reader includes a color imaging assembly that is configured for obtaining a representation of an image in a digital format. The optical reader also includes an image analysis component that is configured for classifying the image by evaluating a result of attempting to locate and process a portion of the image as graphical symbol, and configured for classifying the image as an image including a graphic symbol if and when attempting to locate and process a portion of the image as graphical symbol is successful, and configured for classifying the image as an image excluding a graphic symbol if and when attempting to locate and process a portion of the image as graphical symbol is unsuccessful. 
   In some embodiments, the optical reader is configured to attempt to locate and process a portion of the image as graphical symbol by searching for high energy regions within the image. High energy regions of the image can include black-white transitions. 
   In some embodiments, the optical reader is configured to attempt to locate and process a portion of the image as graphical symbol by attempting to decode the portion of the image as a bar code symbol. Optionally, if the bar code symbol represents a menu, and if attempting to decode the bar code symbol is successful, then a menu that corresponds to a result of decoding of the bar code symbol is executed. Optionally, if the bar code symbol represents data, and if attempting to decode the bar code symbol is successful, then data that corresponds to a result of decoding the bar code symbol is output to a display. 
   In some embodiments, if attempting to decode the bar code symbol is unsuccessful, then attempting to process a portion of the image as a graphical symbol further includes attempting to process the portion of the image as an optical character recognition (OCR) symbol. 
   In some embodiments, if attempting to process the portion of the image as an optical character recognition symbol is successful, then a representation of the processed optical character recognition symbol is stored into a memory. 
   In some embodiments, if attempting to process the portion of the image as an optical character recognition symbol is unsuccessful, then attempting to process a portion of the image as a graphical symbol further includes attempting to recognize the portion of the image as text. If attempting to recognize the portion of the image as text is successful, then the portion of the image is cropped and stored. Optionally, the portion of the image is further compressed after being cropped and before being stored. 
   In some embodiments, if attempting to recognize the portion of the image as text is unsuccessful, then attempting to process a portion of the image as a graphical symbol further includes attempting to recognize the portion of the image as a signature. If attempting to recognize the portion of the image as a signature is successful, then the portion of the image is cropped and stored. Optionally, the portion of the image is further compressed after being cropped and before being stored. Optionally, attempting to process a portion of the image as a graphical symbol further includes attempting to verify the signature. 
   In some embodiments, if attempting to recognize the portion of the image as a signature is unsuccessful, after attempts to decode a bar code symbol, process OCR text and recognize text are unsuccessful, then the image is classified as excluding a graphical symbol. 
   In some embodiments, attempting to locate and process a portion of the image as graphical symbol is successful if at least one of the steps of attempting to decode a bar code symbol, attempting to process a OCR symbol, attempting to recognize text and attempting to recognize a signature, are successful. Optionally, the image including a graphical symbol, is associated with another image that is subsequently captured. In some embodiments, if attempting to process a portion of the image as graphical symbol is unsuccessful, then the image is classified as an image excluding a graphic symbol. 
   In another aspect, the invention provides for a method for employing an optical reader to classify an image. In some embodiments, the method includes the steps of providing an optical reader, configuring the optical reader to obtain a representation of an image in a digital format, configuring the optical reader to classify the image by attempting to locate and process a portion of the image as graphical symbol. The method further includes the steps deciding if attempting to locate and process a portion of the image as graphical symbol is successful, then classifying the image as an image including a graphic symbol; and deciding if attempting to locate and process a portion of the image as graphical symbol is unsuccessful, then classifying the image as an image excluding a graphic symbol. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
       FIGS. 1A-1D  are perspective views of various embodiments of the optical reader of the present invention; 
       FIG. 2  is a block diagram of the electro-optical assembly of the optical reader of the present invention; 
       FIG. 3  is an example of a graphical user interface display in accordance with the present invention; 
       FIG. 4  is a flow chart showing the processing flow for an automatic mode in accordance with another embodiment of the present invention; 
       FIG. 5A-5B  is a flow chart showing the processing flow for a semi-automatic mode in accordance with another embodiment of the present invention; 
       FIG. 6A-6C  are graphical depictions of the menu symbol used in the bar code processing flows depicted in  FIG. 4  and  FIG. 5 ; 
       FIG. 7  is a flow chart showing a method for reading a bar code in accordance with yet another embodiment of the present invention; 
       FIG. 8  is a flow chart showing a method for 1D autodiscrimination in accordance with the method depicted in  FIG. 7 ; 
       FIG. 9  is a flow chart showing a method for 2D autodiscrimination in accordance with the method depicted in  FIG. 7 ; 
       FIG. 10  is a flow chart showing a method for reading text in accordance with yet another embodiment of the present invention; 
       FIG. 11  is a flow chart showing a method for performing OCR in accordance with yet another embodiment of the present invention; 
       FIG. 12  is a flow chart showing a method for associating consecutive images taken with the color optical reader of the present invention; 
       FIG. 13  is an example of image association in accordance with the present invention; 
       FIG. 14  is a perspective view of a wireless color optical reader in accordance with yet another embodiment of the present invention; 
       FIG. 15  is a flow chart showing a method for transmitting packetized data from a color optical reader to a base station; 
       FIGS. 16A and 16B  are diagrammatic depictions of packet formats in accordance with yet another embodiment of the present invention; 
       FIG. 17  is a flow chart showing a method for performing signature verification in accordance with yet another embodiment of the present invention; and 
       FIG. 18  is a diagrammatic depiction of color optical reader network applications in accordance with the present invention. 
   

   DETAILED DESCRIPTION 
   Reference will now be made in detail to the present exemplary embodiments of the invention, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts. An exemplary embodiment of the optical reader of the present invention is shown in  FIG. 1 , and is designated generally throughout by reference numeral  10 . 
   In accordance with the invention, the present invention for an optical reader includes a color imaging assembly for acquiring color imaging data. An image analysis circuit determines if the acquired image includes at least one graphical symbol. A processing circuit processes the imaging data based on the determination of whether the image includes at least one graphical symbol. The present invention allows a user to read graphical symbols, such as bar codes, text, OCR characters or signatures using a color imager. The color optical reader of the present invention is configured to automatically determine whether a color image includes a graphical symbol, or is merely a color photographic image. The optical reader of the present invention also is operative to associate one acquired image with at least one subsequently acquired image. 
   As embodied herein, and depicted in  FIGS. 1A-1D , perspective views of the optical reader in accordance with various embodiments of the present invention are disclosed.  FIG. 1A  shows the underside of hand held wireless optical reader  10 .  FIG. 1B  shows the top of the optical reader depicted in  FIG. 1A . Optical reader  10  includes housing  100 , antenna  102 , window  104  and trigger  12 . Window  104  accommodates illumination assembly  20  and imaging assembly  30 . As shown in  FIG. 1B , the top side of reader  10  includes function keys  14 , alphanumeric key pad  16 , and display  60 . In one embodiment, function keys  14  include an enter key and up and down cursor keys.  FIG. 1C  is also a hand held wireless optical reader  10 . Reader  10  includes function keys  14 , alphanumeric key pad  16 , writing stylus  18 , display  60 , and signature block  62 . Stylus  18  is employed by a user to write his signature in signature block  62 .  FIG. 1D  shows yet another embodiment of optical reader  10  of the present invention. In this embodiment, reader  10  includes a gun-shaped housing  100 . Display  60  and keypad  16  are disposed on a top portion of gun-shaped housing  100 , whereas trigger  12  is disposed on the underside of the top portion of housing  100 . Housing  100  also includes window  104  that accommodates illumination assembly  20  and imaging assembly  30 . Wire  106  is disposed at the butt-end of housing  100 . Wire  106  provides optical reader  10  with a hard wired communication link for external devices such as a host processor or other data collection devices. 
   As embodied herein and depicted in  FIG. 2 , a block diagram of the electro-optical assembly of optical reader  10  of the present invention is disclosed. Optical reader  10  includes illumination assembly  20  and color imaging assembly  30 , connected to processor  40 . Illumination assembly  20  includes illumination optics  22  coupled to light source  24 . Light source  24  is coupled to ASIC/FPGA  44 . ASIC/FPGA  44  is programmed to drive light source  24 . Imaging assembly  30  includes imaging optics  32  and color imager  34 . Imaging optics  32  focuses the illumination light reflected from target T onto color imager  34 . Color imager  34  provides color imaging data to ASIC/FPGA  44 . Color imager  34  performs several functions. Color imager  34  generates analog color image signals using an imaging array color filter. The array color filter pattern is a Bayer-pattern. The analog color imaging data is converted into a digital format using an internal A/D converter which also functions as a quantizer. An 8-bit system provides 256 brightness levels, whereas a 12-bit converter provides over 4,000 brightness levels. Digital color imaging data is transmitted from imager  34  to ASIC/FPGA  44  and processor  42 . 
   Optical reader  10  also includes processor  40 . In the embodiment depicted in  FIG. 2 , processor  40  includes microprocessor  42  and ASIC  44 . System bus  52  couples microprocessor  40 , RAM  46 , EROM  48 , I/O circuit  50  and display  60 . 
   Illumination optics  22  may be of any suitable type, but there is shown by way of example a lens system for directing light from light source  24  towards target T. It will be apparent to those of ordinary skill in the pertinent art that modifications and variations can be made to illumination optics  22  of the present invention depending on the complexity of the target illumination. For example, illumination optics  22  may include one or more lenses, diffusers, wedges, reflectors or a combination of these elements. In one embodiment, illumination optics  22  produces an aiming pattern on target T. 
   Light source  24  may be of any suitable type, but there is shown by way of example a plurality of white LEDs. It will be apparent to those of ordinary skill in the pertinent art that modifications and variations can be made to light source  24  of the present invention depending on the application. For example, illumination assembly  20  may be eliminated altogether if it is certain that the ambient light level will be high enough to obtain high quality color images. In another embodiment, red LEDs are employed instead of the white LEDs. 
   Color imager  34  may be of any suitable type, but there is shown by way of example, a CMOS color imager having an 640×480 pixel resolution. It will be apparent to those of ordinary skill in the pertinent art that modifications and variations can be made to color imager  34  of the present invention depending on cost and the resolution required by optical reader  10 . In another embodiment, color imager  34  has 800×600 pixels. A typical VGA resolution of 640×480 pixels is adequate for displaying color images on a LCD or a computer monitor. In one megapixel embodiment, color imager  34  has 1156×864 pixels (almost 1-million pixels). In yet another embodiment, color imager  34  includes 1536×1024 pixels. One of ordinary skill in the art will recognize that as the resolution of imager  34  increases, so will the cost. In another embodiment, color imager  34  is implemented by scanning a linear CCD array. In other embodiments, color imager  34  is implemented using an area CCD solid state image sensor. 
   Processor  40  may be of any suitable type, but there is shown by way of example a processor which includes microprocessor  42  and ASIC  44  coupled to system bus  52 . In one embodiment, microprocessor  42  and ASIC are programmable control devices that receive, process, and output data in accordance with an embedded program stored in EROM  48 . As discussed above, microprocessor  42  and ASIC  44  are connected to system bus  52 , which includes address, data, and control lines. 
   In the embodiment depicted in  FIG. 2 , microprocessor  42  is an off-the-shelf VLSI integrated circuit (IC) microprocessor. Microprocessor  42  is tasked with the over-all control of the electro-optics shown in  FIG. 2 . Processor  42  controls menu operations, command and data received from I/O circuit  50 , data written to display  60 , and operating system functions. I/O circuit  50  controls the information received from keypad  14  and keypad  16 . Microprocessor  42  is also tasked with processing and decoding imaging data stored in RAM  46  in accordance with the programming instructions stored in EROM  48 . Thus, microprocessor  42  performs bar code decoding, optical character recognition, signature verification, and color image processing. 
   In the embodiment depicted in  FIG. 2 , ASIC  44  is implemented using a programmable logic array (PLA) device. In a similar embodiment, ASIC  44  is implemented using a field programmable gate array (FPGA) device. ASIC  44  is tasked with controlling the image acquisition process, and the storage of image data. As part of the image acquisition process, ASIC  44  performs various timing and control functions including control of light source  24 , control of color imager  34 , and control of external interface  56 . 
   It will be apparent to those of ordinary skill in the pertinent art that modifications and variations can be made to processor  40  of the present invention depending on the cost, availability, and performance of off-the-shelf microprocessors, and the type of color imager used. In one embodiment, microprocessor  42  and ASIC  44  are replaced by a single microprocessor  40 . In one embodiment, microprocessor  40  is implemented using a single RISC processor. In yet another embodiment, microprocessor  40  is implemented using a RISC and DSP hybrid processor. 
   It will be apparent to those of ordinary skill in the pertinent art that modifications and variations can be made to the memory configuration of the present invention depending on cost and flexibility considerations. For example, in one embodiment, EROM  48  is implemented using EPROMs or E 2 PROMs. In yet another embodiment, FLASH memory is employed. RAM  46  typically includes at least one volatile memory device, and in some embodiments includes one or more long term non-volatile memory devices. 
   It will be apparent to those of ordinary skill in the pertinent art that modifications and variations can be made to I/O unit  50  of the present invention depending on the application and work environment. Embodiments of I/O unit  50  include an RS-232 interface, a LAN interface, PAN interface, a serial bus such as USB, an internet interface, and a wireless interface. 
   External interface  56  is used to transmit a discrete signal to control a peripheral device. Typically, the peripheral is an external illuminator. The external illuminator is used in place of light source  24 . 
   It will be apparent to those of ordinary skill in the pertinent art that modifications and variations can be made to the operating system employed by optical reader  10  depending on the applications and desired operating environment. In one embodiment, a WindowsCE operating system is employed. In other embodiments, LINUX or PalmOS operating systems are employed. As a non-limiting example, application programs can be written using C, C ++ , Visual Basic, or Visual C ++ . Other languages can be used as well, depending on the application program. In other embodiments, optical reader  10  does not employ an operating system. For example, the simple reader depicted in  FIG. 1D  does not require a complex operating system. 
   As embodied herein and depicted in  FIG. 3 , an example of a graphical user interface in accordance with the present invention is disclosed. Display  60  provides a plurality of application program icons displayed on graphical user interface (GUI)  650 . Selections are made by the user via arrow  652 . For example, GUI  650  allows a user to select the automatic image capture mode by clicking on automatic mode icon  654 . GUI  650  also includes semi-automatic image capture icon  656 , bar-code scanning icon  658 , OCR/text capture icon  660 , signature capture mode icon  662 , color photography mode icon  664 , association mode icon  668 , and additional application program icons  666 . The application program icon  666  may allow the user to collect other biometric information such as finger and voice prints. In the WindowsCE environment, start button icon  670  and tool bars may also be displayed on GUI  650 . GUI  650  also displays current application program data  672 . 
   In the Automatic imaging mode, processor  40  is programmed to analyze the color imaging data to determine if an acquired image includes a graphical symbol or is merely a color photographic image. If it makes the determination that the color image includes a graphical symbol, it further analyzes the acquired image and classifies it as a bar code, OCR symbol, text, or a signature. Based on the classification, optical reader  10  jumps to the appropriate routine in EROM  48 . The semi-automatic mode is similar. Thus, in the automatic or semi-automatic modes, the bar code scanning mode, the OCR/text mode, the signature capture mode, the color photography mode, and the association mode are controlled by the application program, not by the user. 
   However, the user may manually select any of the above listed modes. If the user clicks on bar code scanning icon  658 , the bar code scanning application program will run. In this application program, the user may select between a 1D bar code mode, 2D bar code mode or an autodiscrimination mode. Further, the user can manually select and de-select the types of bar codes optical reader  10  is enabled to read or not read. 
   The user may also click on OCR/Text icon  660 . Clicking icon  660  provides the user with a check validation mode, a text scanning mode, or a bi-tonal image capture mode. The check validation mode is performed in conjunction with network services. 
   Clicking on icon  662  provides the user with a signature capture mode. In one embodiment, this mode includes a signature verification program wherein the user may select between a static verification or a dynamic verification. In the static mode, the user captures the image of a signature. The captured image is compared with a reference image stored in a remote database. In the dynamic mode, optical reader  10  uses the stylus and signature block to capture the signature. In this mode, signature block  62  measures unique dynamic parameters, such as applied pressure, direction and timing of movements, or a combination of these parameters. One of ordinary skill in the art will recognize that this list is not meant to be all-inclusive, but rather, is a representative example. The captured dynamic parameters are compared with a reference data stored in a remote database. 
   The user selects the color photography mode by clicking on icon  664 . This mode allows the user to select an automatic imaging mode wherein optical reader  10  makes the imaging adjustments (e.g., exposure, etc.) or a manual mode that allows the user to adjust imager settings as he pleases. 
   In another embodiment, display  60  provides the user with a menu listing the main modes of optical reader  10 . The user employs keypad  16  to select the desired mode. A cursor key is employed to highlight any of the modes listed above. Upon pressing the enter key, processor  40  jumps to the appropriate routine stored in EROM  48 . As discussed above, a user may select between an Automatic Imaging mode, a Semi-Automatic Imaging mode, a bar code scanning mode, an OCR/text mode, a signature capture mode, a color photography mode, or an association mode. 
   As embodied herein and depicted in  FIG. 4 , a flow chart showing the processing flow for the automatic imaging mode in accordance with another embodiment of the present invention is disclosed. After the user pulls the trigger in step  400 , processor reads the selected mode. In this case the automatic mode has been selected by the user. The processor initializes optical reader  10  hardware, defines image data memory space, and initializes software mode settings. In step  408 , optical reader  10  captures the image by obtaining color imaging data. In some embodiments, processor  40  may display the acquired image on display  60  during this step. In step  410 , processor  40  determines if the captured image includes a graphical symbol. In one embodiment, processor  40  uses only a portion of the color imaging data to make this determination. Because there are more green pixels than either red or blue pixels in the Bayer-Pattern, processor  40  uses the green pixels to look for high energy regions in the acquired image. High energy, e.g. black-white transitions are a good indicator for the presence of a graphical symbol, such as a bar code symbol. A black and white bi-tonal image will consist of green pixels that are in one of two possible value ranges. One narrow range of values is representative of white portions of the image, whereas the other narrow range of values is representative of black portions of the image. 
   In another embodiment, step  410  is performed by considering all of the pixel values. However, the interpretation of the pixel&#39;s value is adjusted based on whether it is a red, green, or blue pixel. In another embodiment, processor  40  creates a gray-scale image to determine whether the image includes a graphical symbol. 
   If in step  410  processor  40  determines that there is no graphical symbol present in the image, the user is asked in step  432  if he desires to store the image. If so, the color photographic image is stored in memory in step  434 . If processor  40  determines that the image includes a graphical symbol, the process flow moves on to step  418 . In this step, processor  40  strikes scanning lines to locate bar code symbol identifiers. If processor  40  determines that the graphical symbol is a bar code symbol it attempts to decode the symbol in step  436 . If the decoding is successful, the symbol may be a menu symbol or a data symbol. If it is a data symbol, the decoded value of the bar code symbol is output to the display. If it is a menu symbol, a menuing routine is executed. The menu symbol is discussed in more detail below. 
   If processor  40  does not locate a bar code symbol it moves onto step  420  and looks for OCR-A or OCR-B characters. If it finds these characters it performs optical character recognition in step  422 . If it does not, processor evaluates the image for the presence of text. If text is located, the image is cropped, and the text is compressed and stored in steps  428  and  430 . If the image does not include text, processor  40  evaluates the image for the presence of a signature. If one is present, the image is cropped, and the data is compressed and stored in steps  428  and  430 . In another embodiment, optical reader  10  is networked, and processor  40  communicates with remote network resources to provide signature verification services. If processor  40  cannot detect a bar code symbol, OCR symbols, text, or a signature, the user is asked in step  432  if he desires to store the image. If he does, the color photographic image is stored in memory in step  434 . 
   As embodied herein and depicted in  FIG. 5 , a flow chart showing the processing flow for the semi-automatic mode is disclosed. After the user pulls the trigger in step  500 , processor reads the selected mode, initializes optical reader  10  hardware, defines image data memory space, and initializes software mode settings. In step  508 , optical reader  10  captures and displays the image. 
   In step  510 , processor  40  determines if the captured image includes a graphical symbol. Step  510  in the semi-automatic mode is identical to step  410  in the automatic mode. If processor  40  determines that the captured image does not include a graphical symbol, processor  40  asks the user if she wants to store the color image. If so, the color image is stored in step  514 . In step  516 , a prompt asks the user if he desires to associate the color image with another image. This step is not performed in the automatic mode. In step  518 , if the user answers in the affirmative, the association is made and the processing flow returns to step  508 . 
   In steps  520 ,  522 ,  526 , and  532 , the user is given the opportunity to select the type of graphical imaging that is to be performed. The method for performing OCR, text capture, and signature capture and/or verification are discussed above in the automatic mode description with one difference. In the semi-automatic mode, the user is asked in step  538  if he desires to associate the processed image with a subsequent captured image. If so, process flow is directed back to step  508  and another image is captured and displayed. The association feature can be used several times to associate multiple images. 
   If the user indicates that it is a bar code, an attempt is made to decode the symbol in step  540 . Referring back to step  540 , if the decoding attempt is successful, processor  40  determines in step  544  if the symbol is a menu symbol. If it is not a menu symbol, processor  40  displays the decoded bar code information on display  60 . If it is a menu symbol, processor  40  executes the appropriate menu routine in step  546 . In steps  552  to  564 , processor  40  may continue to capture images if the trigger is continuously pulled. In step  562 , the user is asked if he desires to associate the decoded bar-code with another image. If so, the program flow is directed back to step  508  and another image is captured and displayed. Processor  40  links this image to the decoded bar code information. 
   As embodied herein and depicted in  FIG. 6A-6C , graphical depictions of the menu symbol used in the bar code processing flows depicted in  FIG. 4  and  FIG. 5  are disclosed. A decoded menu symbol includes menu word  600  which has the format depicted in  FIG. 6A . Menu word  600  includes a one byte product ID code  600 - 1 , that identifies the type and model of the optical reader. Field  600 - 2  of word  600  specifies the op-code. The op-codes are depicted in  FIG. 6C . Op-code  0 , refers to vector processing operations that are listed as A 1 -A 4  in  FIG. 6C . Vector processing allows the user to download, enabled codes, the parameter table, or current software to an external device. Op-codes  1 - 7  allow a user to modify a specific portion of the parameter table. These op-codes are used in conjunction with the offset field  600 - 3  and data fields  600 - 4  to  600 - 7 . Offset field  600 - 3  is an index relative to the base address of the parameter table in memory that specifies the exact location in the parameter table. The data fields  600 - 4  to  600 - 7  are used to specify a bit mask that indicates which bits are to be modified.  FIG. 6B  depicts a second important group of options. For example, reader operating modes are included in F 1 -F 6 . These options are identical to the icons displayed on GUI  650  in  FIG. 3 . Offset field  600 - 3  accommodates other optical reader  10  options as shown. 
   As embodied herein and depicted in  FIG. 7 , a flow chart showing a method for reading a bar code in accordance with yet another embodiment of the present invention is disclosed. In step  700 , processor  40  refers to a parameter table stored in EROM  48 . Specifically, processor  40  determines if the parameter table is programmed to perform 1D decoding. If the parameter table has enabled 1D processing, 1D autodiscrimination is performed. The parameter table specifies the values of the parameters that define the operational mode of the reader. Examples of these parameters include the size and frame rate of the color imager, codes that are enabled during bar code decoding, I/O communications protocols, OCR options, and others. If 1D decoding is successful, the decoded data is stored or displayed, in accordance with the parameter table settings. If 1D codes are disabled or if 1D decoding is unsuccessful, processor moves on to step  708 . In this step, processor  40  determines if any 2D codes are enabled. If the parameter table has all of the 2D codes disabled, processor  40  exits the bar code decoding routine. If 2D codes are enabled, 2D autodiscrimination is performed in step  710 . If decoding is successful, the decoded data is either stored or output, depending on the parameters stored in the parameter table. If decoding is unsuccessful, processor exits the routine. 
   As embodied herein and depicted in  FIG. 8 , a flow chart showing a method for performing the 1D autodiscrimination of step  702  in  FIG. 7  is disclosed. In step  800  processor  40  calculates the activities of selected image data elements. The activity is defined as a measure of the rate of change of the image data over a small two-dimensional portion of the region surrounding the selected data element. In one embodiment, the activity is calculated along any two arbitrarily selected directions which are orthogonal one to the other. Two mutually perpendicular directions are used because the orientation of the symbol is unknown. In step  802 , processor  40  looks for “high activity” regions. These high activity regions are referred to as candidate symbol regions(CSRs). A high activity region indicates a transition from a black region to a white region, or vice-versa. If there is more than one CSR, it may indicate the presence of more than one bar code symbol. In step  804 , processor  40  selects the largest CSR. In step  806 , processor  40  calculates the centroid of the largest CSR. Subsequently, processor  40  finds the direction of the highest activity in the largest CSR. In a 1D bar code, this will be the direction perpendicular to the direction of the bars. In steps  810  and  812 , processor defines the initial scan line (SC=0), as being the scan line bisecting the centroid of the bar code. Processor calculates the brightness values of sampling points along the initial scan line. These brightness values are converted to digital data in step  816 . In decoding step  818 , processor  40  applies one 1D decoding program after another. If decoding is unsuccessful, processor  40  checks if the entire CSR has been scanned. If not, it establishes a new scan line, and repeats the decoding process. If in step  822 , the entire CSR has been scanned, and there are no CSRs remaining to be decoded, processor  40  exits the routine. If in step  820 , 1D decoding is successful, processor  40  determines if the symbol is a 1D stacked symbol. If it is a 1D stacked symbol, processor  40  scans and decodes the remaining CSRs in the stacked symbol. If it is not a stacked symbol, the decoded 1D data is stored or output to display  60  in step  830 . In step  838 , processor  40  determines if there any unexamined regions. If there are unexamined regions, the decoding process is repeated. Otherwise, processor  40  exits the routine. 
   As embodied herein and depicted in  FIG. 9 , a flow chart showing a method for 2D autodiscrimination is disclosed. In step  900 , processor  40  converts the image data into a two-state binarized format. In step  902 , processor  40  locates all 2D finder patterns and identifies them by type. Pattern types include bulls-eye type patterns, waistband type patterns peripheral patterns, and others. If the number of finder patterns equals zero, processor  40  exits the routine. If there are finder patterns, processor  40  locates the finder pattern closest to the center of the field of view in one embodiment of the invention. The closest-to-the-center option has an advantage in that a centrally located image is likely to be a symbol. In step  908 , processor  40  attempts to decode the symbol in accordance with the finder type. For example, the Aztec 2D matrix symbol employs a bulls-eye finder pattern. The DataMatrix symbology employs a peripheral finder pattern. If the decoding is successful, the decoded data is either stored or displayed. In step  914 , processor  40  determines if there are any other unused finder patterns. If so, the symbols corresponding to those unused patterns are decoded, and the previously described steps are repeated. Otherwise, processor  40  exits the routine. 
   As embodied herein and depicted in  FIG. 10 , a flow chart showing a method for reading text in accordance with yet another embodiment of the present invention is disclosed. This routine can be accessed in a number of ways as described above. In step  1000 , a bit-map image of the page is produced. In step  1002 , the bit mapped image is sampled. In one embodiment, this is performed by analyzing every Nth scan line of the bit mapped image. The value of integer N is dependent on the resolution of the scanned image. In one embodiment the image is sampled every 1/40 th  of an inch. This provides sufficient resolution to locate and classify the various regions on the page. By sampling every 1/40 th  of an inch instead of every scan line, the processing and memory requirements of reader  10  are substantially reduced. In step  1004 , processor  40  identifies the page features. Processor  40  analyzes the page and divides it into blank and non-blank portions. The non-blank portions are analyzed to distinguish text regions from non-text regions. After determining the layout of the page, processor  40  uses black-to-white transitions to determine degrees of skew. In step  1008 , horizontal white spaces are identified to separate lines of text. In step  1010 , vertical white spaces are identified within each line of text to thereby separate individual words and characters from each other. In step  1014 , a character recognition algorithm is used in an attempt to recognize each individual character. Finally, in step  1016 , processor  40  formats the recovered text before storing the text in memory. 
   As embodied herein and depicted in  FIG. 11 , a flow chart showing a method for performing OCR in accordance with yet another embodiment of the present invention is disclosed. In step  1100 , reader  10  produces a bit-mapped image of the page. Subsequently, processor  40  finds lines of text in the image, locates the white spaces in each line, and isolates the characters. In step  1108 , processor  40  performs character recognition, either OCR-A or OCR-B, as desired. The decoded characters are stored in memory. 
   As embodied herein and depicted in  FIG. 12 , a flow chart showing a method for associating consecutive images taken with the color optical reader of the present invention is disclosed. This method corresponds to icon  668  displayed on GUI  650  in  FIG. 3 . If icon  668  is not clicked on, processor  40  assumes that reader  10  is not operating in association mode. Thus, processor  40  will process a single image. If reader  10  is in association mode processor  40  initializes counter CNTR. In step  1206  processor  40  processes the first captured image. In step  1208 , if CNTR is less than or equal to two, processor  40  processes image N, and links image N to the first image. In step  1216 , CNTR is incremented by one. If CNTR is greater than two (step  1208 ), meaning that at least two images have already been linked, processor  40  asks the user if she desires to link another image. If so, the processing flow returns to step  1212 . If not, processor  40  exits the routine. 
   As embodied herein and depicted in  FIG. 13 , an example of image association in accordance with the present invention is disclosed. One or ordinary skill in the art will recognize that associated images  1300  can be disposed on paper, displayed electronically on display  60 , or displayed electronically sing other electronic means, such as a computer monitor. In this example, the first image captured is color photograph  1302  which shows a damaged parcel. The second image captured is bar code  1304  affixed to the side of the damaged parcel. Processor  40  decodes bar code  1304  and associates decoded bar code data  1306  with color photograph  1302 . In this example, the user elected to associate a third image, signature  1308 . Thus, personnel viewing record  1300  may reasonably conclude that a damaged parcel was delivered to Company XYZ, and that the person signing for the parcel delivery was someone named John W. Smith. 
   As embodied herein and depicted in  FIG. 14 , a perspective view of a wireless color optical reader network  1400  in accordance with another embodiment of the present invention is disclosed. Network  1400  includes N-cordless optical scanners  10  coupled to base terminal  202  by means of radio link  18 . Base terminal  202  is connected to host computer  206  by communications link  204 . Cordless optical reader  10  is of the type described above. It includes antenna  102 , keypads  14  and  16 , and display  60 . A radio controller is included in both the optical scanner  10  and the base terminal  202 . It will be apparent to those of ordinary skill in the pertinent art that radio controller may be of any suitable type, but by way of example, radio controller  30  provides frequency hopping spread spectrum communications (FHSS) between scanner  10  and base terminal  202 . FHSS is a form of spread spectrum radio transmission that produces a narrow band signal that hops among a plurality of frequencies in a prearranged pattern. FHSS is often used in commercial environments because of its ability to minimize errors due to interference or jamming. However, those of ordinary skill in the art will recognize that optical scanner  10  and base terminal  202  may communicate using other wireless schemes and other modulation formats based on user requirements and environmental factors. Base terminal  202  includes antenna  208 , which is used to transmit and receive messages from optical scanner  10 . Antenna  208  is connected to a radio controller disposed inside terminal  202 . Base terminal  202  also includes an I/O card, a base terminal processor, and a base terminal memory. The I/O card in base terminal  202  is coupled to the radio controller and communications link  204 . 
   As embodied herein and depicted in  FIG. 15 , a flow chart showing a method for transmitting packetized data from a color optical reader to a base station is disclosed. In steps  1500  and  1502 , optical reader  10  captures an image and processes the image as described above. In step  1504 , the processed image, whether it be a color image, decoded bar codes, a text file, or signature verification information, is assembled into packets. In steps  1506  and  1508 , a loop is created wherein packets are sent to the base terminal one-by-one until all packets are sent. 
   As embodied herein and depicted in  FIG. 16A  and  FIG. 16B , diagrammatic depictions of packet formats in accordance with the present invention are disclosed. In one embodiment of the present invention, each packet can accommodate approximately 200 bytes of decoded data in a 256 byte packet. This is merely a representative example, and one of ordinary skill in the art will recognize that the scope of the present invention should not be limited to data packets of a certain size or format.  FIG. 16A  shows data packet  1600  which is used to transmit decoded data from an optical reader to a base terminal when only one data packet is required. Packet  1600  includes an optical reader address field, sequence number field, a packet length field, an image type field, image data, and an error check field. The optical reader address identifies a particular optical reader. Each packet includes a sequence number disposed in the second field. The next field contains the length of the image data field. After this, the packet contains a field identifying the type of image that was processed. After the image type, the image data payload of the packet is inserted. Finally, packet  200  includes an error checking field. 
     FIG. 16B  shows header packet  1602  and data packet  1604  used to transmit decoded data from an optical scanner to a base terminal when more than one data packet is required. When more than one packet is required, reader  10  first transmits header packet  1602 . After base terminal  202  acknowledges that it can process the remaining packets, reader  10  transmits remaining packets  1604 . If base terminal  202  cannot process the remaining packets  1604 , or if there is another problem, base terminal  202  will transmit an application packet to scanner  10  indicating the error. The definitions of the scanner address field, the sequence number field, symbol type, length, symbol data, and error check field were described above, and hence, will not be repeated. Header packet  1602  also includes a header identification field, which identifies the packet as a header packet. In the next field, packet  1602  includes a total length field, which includes the total length of the data contained in the decoded symbol. The next field includes the total number of packets in the message. The second-to-last field is the packet number. In the header packet, this number is designated as packet number “one.” The remaining packets  1604  also include a packet number field, which are incremented from 2 to N, depending on the total number of packets being transmitted in the message. 
   Packet  1600 , packet  1602 , and packet  1604  as described above may be of any suitable type, and are representative examples representing one embodiment of the present invention. One of ordinary skill in the art will recognize that the packets may be implemented in a variety of ways. 
   As embodied herein and depicted in  FIG. 17 , a flow chart showing a method for performing signature verification is disclosed. In step  1700 , optical reader  10  captures the image of the document to thereby generate a bit-map of the image. One of ordinary skill in the art will recognize that in the automatic mode or semi-automatic mode, processor  40  determines that the image object is a graphical symbol in a subsequent step. Step  1202  is similar to steps  1002  and  1004  of  FIG. 10 . The image is sampled by analyzing every Nth scan line of the bit mapped image. As discussed above, the image must be scanned in such a way so as to provide sufficient resolution to locate and classify the various regions on the document. In the case of a check, the location of the various fields on the instrument are relatively standard. Check sizes may differ somewhat, but the check number, bank code, account number, date, signature block, and etc. are in the same relative locations from check to check. In step  1704 , document data such as the name, check number, bank code, account number, and date, are extracted from the document using any OCR program and stored in memory. In step  1706 , the image of the hand writing in the signature block is captured. 
   Steps  1708  and  1710  are performed using the wireless system  1400  described above. In other embodiments these steps are performed by a wireline system. For example, in one embodiment, optical reader  10  is coupled to a host computer via an RS-232 or USB link. In another embodiment, optical reader  10  is connected to a host computer via a LAN. One of ordinary skill in the art will recognize that the present invention should not be construed as being limited by these examples. 
   In steps  1712  and  1714 , processor  40  initializes a counter and begins waiting for a reply from the host computer. In steps  1714 - 1718 , if the reply is not received within time limit T L , the counter CNTR is incremented and the message is re-transmitted. After several attempts, if CNTR&gt;N (N being an integer), processor  40  outputs a fault message. If the reply message is received within time limit T L , processor interprets the reply in step  1722 . If the extracted data and the signature match information stored in the database accessible by the host computer, an approval message is displayed. If the extracted data and the signature do not match information stored in the database accessible by the host computer, a disapproval message is displayed. The dynamic signature verification embodiment is similar to the static embodiment described immediately above. In the dynamic version, the user provides his signature using stylus  18  and signature block  62 , as shown in  FIG. 1C . Signature block  62  provides processor  40  with the dynamic parameters recorded during signature. The dynamic parameters are transmitted to a host processor, as described above. 
   As embodied herein and depicted in  FIG. 18 , an example of a color optical reader network  1800  in accordance with the present invention is disclosed. Network  1800  includes wireless system  1400 , personal computer  1802 , optical reader  10 , LAN  1820 , network servicing center  1830 , and personal area network (PAN) coupled together via network  1810 . 
   One of ordinary skill in the art will recognize that network  1810  may be of any suitable type depending on the application, but there is shown by way of example the Internet. However, the present invention should not be construed as being limited to this example. In another embodiment, network  1810  is a private network. Those of ordinary skill in the art will also recognize that network  1810  is a wireline network in one embodiment, and a wireless network in another embodiment. Network  1810  may include circuit switched networks, IP networks, or both. 
   LAN  1820  includes server  1822 , computer  1824 , database  1826 , and a plurality of optical readers  10 . Database  1826  is used to store associated images along with other data fields. For example, it would be rather useful to store additional information with the associated images shown in  FIG. 13 . One may want to associate the delivery means, route, driver, and other related information for subsequent analysis. Network  1810  allows reader  10 , PAN  1850 , and wireless system  1400  a way to store such data in database  1826 . System analysts can access this information via personal computer  1802  connected to network  1810 . In one embodiment, LAN  1820  includes an Internet website. In this embodiment, users are authenticated before gaining access to database  1826 . 
   Network servicing center  1830  is coupled to network  1810  via interface  1844 . Center  1830  also includes server  1832 , computer  1834 , database  1836 , signature verification module  1838 , authentication module  1840 , coupled together via a LAN. Center  1830  accommodates any number of useful applications programs  1842 . 
   PAN  1850  includes at least one color optical reader  10  coupled to point-of-sale (POS) terminal  1854 . POS terminal  1854  is coupled to network  1810  via interface  182 . POS terminal  1854  includes a credit card reader and a signature capture block. In the scenario depicted in  FIG. 18 , a merchant user of POS terminal  1854  transmits an associated customer credit card number, signature, and in one embodiment, a color image of the customer, to Center  1830 . Authentication module  1840  is used to authenticate the credit card and signature verification module is used to authenticate the signature. In another embodiment, database  1836  is used to store the customer&#39;s image, credit card number, and signature for verification purposes. 
   It will be apparent to those skilled in the art that various modifications and variations can be made to the present invention without departing from the spirit and scope of the invention. Thus, it is intended that the present invention cover the modifications and variations of this invention provided they come within the scope of the appended claims and their equivalents.