WO1990005963A1 - Procede de mappage de donnees relatives a des elements d'image numerises - Google Patents

Procede de mappage de donnees relatives a des elements d'image numerises Download PDF

Info

Publication number
WO1990005963A1
WO1990005963A1 PCT/US1989/005205 US8905205W WO9005963A1 WO 1990005963 A1 WO1990005963 A1 WO 1990005963A1 US 8905205 W US8905205 W US 8905205W WO 9005963 A1 WO9005963 A1 WO 9005963A1
Authority
WO
WIPO (PCT)
Prior art keywords
pixel data
axis
detector
scanner
coordinate
Prior art date
Application number
PCT/US1989/005205
Other languages
English (en)
Inventor
George T. Angwin
Original Assignee
Msc Technologies, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Msc Technologies, Inc. filed Critical Msc Technologies, Inc.
Publication of WO1990005963A1 publication Critical patent/WO1990005963A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/04Scanning arrangements, i.e. arrangements for the displacement of active reading or reproducing elements relative to the original or reproducing medium, or vice versa
    • H04N1/047Detection, control or error compensation of scanning velocity or position
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/04Scanning arrangements, i.e. arrangements for the displacement of active reading or reproducing elements relative to the original or reproducing medium, or vice versa
    • H04N1/10Scanning arrangements, i.e. arrangements for the displacement of active reading or reproducing elements relative to the original or reproducing medium, or vice versa using flat picture-bearing surfaces
    • H04N1/107Scanning arrangements, i.e. arrangements for the displacement of active reading or reproducing elements relative to the original or reproducing medium, or vice versa using flat picture-bearing surfaces with manual scanning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/024Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof deleted
    • H04N2201/02406Arrangements for positioning elements within a head
    • H04N2201/02425Self-adjusting arrangements, e.g. compensating for temperature fluctuations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/024Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof deleted
    • H04N2201/02406Arrangements for positioning elements within a head
    • H04N2201/02439Positioning method
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/024Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof deleted
    • H04N2201/028Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof deleted for picture information pick-up
    • H04N2201/03Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof deleted for picture information pick-up deleted
    • H04N2201/031Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof deleted for picture information pick-up deleted deleted
    • H04N2201/03104Integral pick-up heads, i.e. self-contained heads whose basic elements are a light source, a lens and a photodetector supported by a single-piece frame
    • H04N2201/0315Details of integral heads not otherwise provided for
    • H04N2201/03162Original guide plate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/04Scanning arrangements
    • H04N2201/0402Arrangements not specific to a particular one of the scanning methods covered by groups H04N1/04 - H04N1/207
    • H04N2201/0422Media holders, covers, supports, backgrounds; Arrangements to facilitate placing of the medium
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/04Scanning arrangements
    • H04N2201/047Detection, control or error compensation of scanning velocity or position
    • H04N2201/04701Detection of scanning velocity or position
    • H04N2201/0471Detection of scanning velocity or position using dedicated detectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/04Scanning arrangements
    • H04N2201/047Detection, control or error compensation of scanning velocity or position
    • H04N2201/04701Detection of scanning velocity or position
    • H04N2201/04715Detection of scanning velocity or position by detecting marks or the like, e.g. slits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/04Scanning arrangements
    • H04N2201/047Detection, control or error compensation of scanning velocity or position
    • H04N2201/04701Detection of scanning velocity or position
    • H04N2201/04715Detection of scanning velocity or position by detecting marks or the like, e.g. slits
    • H04N2201/04717Detection of scanning velocity or position by detecting marks or the like, e.g. slits on the scanned sheet, e.g. a reference sheet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/04Scanning arrangements
    • H04N2201/047Detection, control or error compensation of scanning velocity or position
    • H04N2201/04701Detection of scanning velocity or position
    • H04N2201/04729Detection of scanning velocity or position in the main-scan direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/04Scanning arrangements
    • H04N2201/047Detection, control or error compensation of scanning velocity or position
    • H04N2201/04701Detection of scanning velocity or position
    • H04N2201/04731Detection of scanning velocity or position in the sub-scan direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/04Scanning arrangements
    • H04N2201/047Detection, control or error compensation of scanning velocity or position
    • H04N2201/04701Detection of scanning velocity or position
    • H04N2201/04734Detecting at frequent intervals, e.g. once per line for sub-scan control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/04Scanning arrangements
    • H04N2201/047Detection, control or error compensation of scanning velocity or position
    • H04N2201/04753Control or error compensation of scanning position or velocity
    • H04N2201/04758Control or error compensation of scanning position or velocity by controlling the position of the scanned image area
    • H04N2201/04787Control or error compensation of scanning position or velocity by controlling the position of the scanned image area by changing or controlling the addresses or values of pixels, e.g. in an array, in a memory, by interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/04Scanning arrangements
    • H04N2201/047Detection, control or error compensation of scanning velocity or position
    • H04N2201/04753Control or error compensation of scanning position or velocity
    • H04N2201/04789Control or error compensation of scanning position or velocity in the main-scan direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/04Scanning arrangements
    • H04N2201/047Detection, control or error compensation of scanning velocity or position
    • H04N2201/04753Control or error compensation of scanning position or velocity
    • H04N2201/04791Control or error compensation of scanning position or velocity in the sub-scan direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/04Scanning arrangements
    • H04N2201/047Detection, control or error compensation of scanning velocity or position
    • H04N2201/04753Control or error compensation of scanning position or velocity
    • H04N2201/04794Varying the control or compensation during the scan, e.g. using continuous feedback or from line to line

Definitions

  • the present invention relates generally to a method for using a scanner to scan pixel data from an image on a page and store the scanned pixel data in the memory of a computer, and more particularly to a method for determining the relative position of the each detec ⁇ tor element of a detector array over a grid of pixels, thereby facilitating the accurate mapping of scanned pix ⁇ el data in the computer's memory.
  • Position sensors or cursor control devices which determine the relative position of a point on a grid and thereby determine the movement of a cursor on a visual display system, such as a computer screen, are known in the art.
  • One such device is an optical position sensor, commonly called a mouse.
  • the term “mouse,” or its plural “mice,” is used to describe any type of mechanical or optical device capable of de ⁇ tecting its relative motion and/or position over a sur- face and producing an output signal that can be used to determine the position of a cursor on a computer screen or an address in a computer's memory.
  • a single electro- optical or electro-mechanical mouse is used in combina- tion with a computer terminal and a software program which allows the operator to enter instructions for a computer without need of a keyboard.
  • Some prior art de ⁇ vices have combined a single mouse with a detector array, capable of detecting pixel data from a scanned surface, to produce a type of scanning device. These types of scanning devices have typically been used to scan a sin ⁇ gle line of text at a time or other indicia located at some position on the scanned page. The usefulness of such scanners has generally been limited because the mouse used in such applications can only detect motion in one dimension and cannot relate its position on the scanned page to a cursor position.
  • Another type of prior art scanner such as the
  • the scanner is equipped with an array of photo ⁇ sensitive elements for detecting light reflected from the printed characters on the page, but not the transparency.
  • the scanner is also equipped with two optical mice, which are sensitive to light reflected from the transparency and not the page, for determining the position and rela ⁇ tive angle of the detector array with respect to the grid pattern.
  • Each mouse operates as a counter, detecting the number of vertical or horizontal lines crossed on the grid pattern, to determine the position of each mouse with respect to the grid pattern.
  • the position of each mouse can be determined, it is also necessary to determine the exact position of each detector element of the detector array in order to correctly map the scanned data in the memory of the computer. Theoretically, by placing the detector array between the two mice, it is possible to draw a line between the mice and use that line to place the position of each element of the detec ⁇ tor array in the memory or display of the computer.
  • One possible solution for determining where to assign data in the memory of the computer for a straight array of detector elements is to use one of the algo ⁇ rithms typically utilized to determine the coordinates of pixels which lie near a line drawn across a two- dimensional raster grid. These algorithms operate by assigning known coordinates to the ends of the line, de ⁇ termining the slope of the line, and then determining the relative position of the line with respect to the pixels on the grid. The relative position of the line with re ⁇ spect to the grid is determined by making incremental calculations with each step along the line based upon the results of the preceding step.
  • Bresenha 's Line Algorithm is one of the algo ⁇ rithms commonly used to make such calculations because it uses only integer arithmetic and no real variables, thereby eliminating the extra time and hardware required to do arithmetic with real variables.
  • the Bresenham al ⁇ gorithm operates by stepping along the raster grid in the direction of the X-axis, selecting a different pixel co ⁇ ordinate position close to the line for each grid element in the X-axis direction lying below the line segment be ⁇ ing mapped.
  • the Bresenham algorithm cal ⁇ culates a pixel coordinate position for each raster grid element covered by the projection of the line segment onto the X-axis.
  • the algorithm can be referenced to the Y-axis in a manner analogous to the X-axis referencing described hereinabove.
  • the relevant line segment is the array of detectors.
  • the Bresenham algorithm produces a number of memory as- signments equal to N times the cosine of the angle the array makes with the X-axis.
  • the scanner de ⁇ tector is sensing data for N pixels and the cosine of an angle is generally less than one, using the Bresenham algorithm in a scanner application is inappropriate be ⁇ cause it does not calculate the positions of enough pix ⁇ els to use the data sensed.
  • the problem with using Bresenham's algo- rithm for determining where to assign scanned data in memory is that when the detector array is aligned at an angle, more memory addresses are selected for storing scanned data than there are corresponding scanned data to be assigned if a proper recreated image is to be produced by the scanner. Since data collected from different po ⁇ sitions on the scanned page are always assigned to dis ⁇ crete locations in memory in accordance with this algo ⁇ rithm, scanners using this algorithm to assign scanned data when scanning any line on a page, which was neither parallel nor perpendiqular to the vertical or horizontal axis of the page, would recreate an image of the line which is longer than the length of the line actually scanned.
  • a second type of dual mouse scanner is de- scribed in Ichinokawa et al, U.S. Patent No. 4,581,761, issued April 8, 1986, which shows an image scanner which is randomly movable over the surface of a sheet of paper, which is in turn laying over a pad having magnetostric- tive properties.
  • the pad is operative to be subjected to pulses introduced at two adjacent ends of the pad (one end representing the vertical axis and the other end rep ⁇ resenting the horizontal axis) which cause the agnetos- trictive material of the pad to produce wave like dis ⁇ turbances in the surface of the pad which travel in ver- tical and horizontal directions.
  • the position sensors have the ability to detect the raised portion of the pad when a wave passes thereunder and the ability to deter ⁇ mine the position of each sensor with respect to the pad by extrapolating the amount of time required for a wave to reach a position sensor from where it started.
  • optical mice are relative positioning devices which are typically unable to determine their
  • Another objective of the present invention is to provide a method for assigning information collected by N detector elements to precisely N, not necessarily different, positions in memory regardless of the angle formed by the detector array with the X-axis.
  • Another objective of the present invention is to provide a method for determining the relative position of a dual mouse optical scanner with respect to a grid pattern over which it is moved.
  • a preferred embodiment of the present invention comprises the steps of (a) placing a scanner having an elongated detector array of detector elements and two optical mice located in relation to the ends of the array on a transparent grid pattern covering an image on a page to be scanned, (b) determining the orientation of the scanner with respect to the grid pattern using motion detection information provided by the two mice, (c) positioning the scanner at a starting point from which to start detecting the position of the mice and commencing scanning of the page by moving the scanner across the surface of the grid pattern, and (d) storing pixel data scanned by each detector element at a memory address of a computer in communication with the scanner which corresponds to a coordinate position on the grid pattern determined to be nearest to the actual position of a particular detector element.
  • FIG. 1 is a perspective plan view of a scanner having a detector array and two position sensors in ac ⁇ cordance with the preferred embodiment of the present invention.
  • Fig. 2 is a plan view graphically illustrating the relationship between the scanner and the electronic representation of the grid pattern.
  • Fig. 3 is a flow diagram depicting the process of scanning pixel data from a page and communicating the scanned pixel data to appropriate computer memory ad- dresses in accordance with the preferred embodiment of the present invention.
  • Fig. 4 is a flow diagram further illustrating the process of orienting and initializing the scanner and computer to scan and map from a known first position in accordance with the preferred embodiment of the present invention.
  • Fig. 5 is a flow diagram further illustrating the process of determining a memory address at which to store scanned pixel data from a first detector element.
  • Fig. 6 is a flow diagram further illustrating the process of running the "nearest algorithm" for the remaining elements in the detector array and mapping their positions in memory.
  • Fig. 7 is a flow diagram further illustrating the process of determining the X-Y coordinate positions of the elements 0 and N-l and the angle formed by the detector array with the X or Y-axis.
  • Fig. 8 is a flow diagram further illustrating the process of determining the next temporary address at which to store pixel data detected by the next adjacent detector element in the detector array.
  • Fig. 9 is a flow diagram illustrating the proc ⁇ ess illustrated in Fig. 3 and further including the proc ⁇ ess of writing stored pixel data to a remote terminal.
  • Fig. 10 is block diagram schematically repre- senting an arrangement of component parts which could be used in the practice of the present invention.
  • Fig. 1 is perspective plan view of a scanner having a detector array and two position sensors in ac ⁇ cordance with the preferred embodiment of the present invention.
  • the scanner 10 is shown placed upon a trans ⁇ parency 12 having a grid pattern 13 thereon, which is in turn placed over a sheet of paper 14 from which printed information 16, of pixel data, is to be scanned.
  • Scanner 10 is comprised of a housing 18, containing two position sensor sections 20 and 22 and a scanning array section 24.
  • Each position sensor 20 contains a light source 26 and a detector 28.
  • the scanning array section 24 con ⁇ tains a light source array 30 and a detector array 32.
  • Two sets of wires 34 and 36 which communicate position and motion information to a computer (not shown) , pass from position sensor sections 20 and 22 respectively.
  • data lines 38, timing line 40, and end of sig ⁇ nal line 42 communicate information from light source array 30 and detector array 32 to various components of the computer (not shown, but described below) .
  • the housing 18 should fit into the palm of the hand of the operator and be smoothly moveable over the surface of the transparency 12.
  • the light sources 26 and 30 may be light emitting diodes, incandescent bulbs or other broadband illumination sources, and may emit ul ⁇ traviolet and infrared light, as well as visible light.
  • the light sources 26 and 30 may be lasers, such as a diode laser.
  • the detectors 28 and 32 can be comprised of any of a number of light sensitive devices, such as photodetectors or CCD's.
  • the light sources and detectors should be arranged so as to illumi ⁇ nate a portion of the grid pattern 13 or page 14 and re ⁇ flect that light onto one of the detectors in sufficient magnification so as to reduce optical errors.
  • the transparency 12 can be made from any of a number of materials, such as mylar or plastic, and have the grid pattern 13 printed, dyed or formed on one of its surfaces.
  • the lines forming grid pattern 13 are prefera ⁇ bly comprised of a material which is transparent to visi- ble light, but not ultraviolet or infrared light.
  • mice will only detect information regarding the position of the scanner and the scanning array will only detect pixel data from the page being scanned.
  • Fig. 2 illustrates the relative size of the elements 48 of the detector array 32 with respect to electronic representations of the grid pattern 13 and the printed information 16 of page 14.
  • Two mouse points, M- ⁇ and M 2 which represent relative position indicators for the mice of the scanner, are shown in their approximate positions with respect to the detector array 32.
  • the electronic grid pattern 13 is made up of two intersecting orthogonal sets of grid lines, including horizontal lines 50 and 52 and vertical grid lines 54 and 56, with spaces 58 defined therebetween.
  • Electronic grid pattern 13 is referred to as being "electronic" because Fig. 2 only depicts the magni ⁇ fied image of the grid pattern and data in relation to the detector elements 48, rather than the actual physical size of the grid pattern and underlying data.
  • Each set of grid lines is made up of parallel uniformly spaced grid lines, forming uniformly sized spaces of approxi ⁇ mately equal line width therebetween.
  • the grid lines 50-56, and the spaces 58 have approximately the same line width, W.
  • a pixel is defined by any area with- in a space or grid line having sides of W, such as a space or square portion of a line.
  • grid lines per inch of grid pattern there are 200 grid lines per inch of grid pattern, thus one square inch of grid pattern will be 400 pixels long by 400.pix- els wide.
  • the actual physical size of grid pattern 13 and data 16 are approximately one-fourth the size depict ⁇ ed in Fig. 2, but the magnification effect could be greater or smaller depending on the size of the detector- elements and grid pattern utilized.
  • other line widths may be used and the grid pattern need not form square spaces, although square spaces are easier to han ⁇ dle for computer purposes.
  • the elements 48 of the detector array 32 are approximately the size of an electronic pixel of the grid pattern. There are about 400 elements 48 per inch of detector array 32, which is typically two to three inches in length. There would typically be as many as 1024 de ⁇ tector elements 48 in the typical detector array 32, al ⁇ though only nine such elements, labeled 0 through N-1 (at the bottom of each element) are shown in Fig. 2, and not necessarily all detector elements are utilized by the scanner.
  • the detector array 32 can be moved in any di ⁇ rection relative to the grid pattern 16 and the X-Y coor ⁇ dinate axes.
  • the relatively small size of the pixels and the elements 48 of the detector array 32 can be further shown by the printed information 16 shown in Fig. 2, which forms a portion of the "F” in the word “Financial,” depicted in Fig. 1.
  • Each element 0 through N-1 has its center marked with a "o.”
  • a number of neighboring pixels have their centers marked with an "*.”
  • the X-Y coor ⁇ dinate system is oriented to have its Y-axis lying along grid line 54 and its origin corresponding to the center of element 0 and one pixel, the X-Y coordinate system can be oriented at any position on the grid pattern 13. The reasoning behind placing the X-Y coordinate system and the U-V coordinate system at the positions shown in Fig. 2 will be explained below with respect to Figs. 3-9. Fig.
  • FIG. 3 is a flow diagram depicting the process of scanning pixel data 16 from the page 14 and communi ⁇ cating the scanned pixel data to appropriate computer memory positions so as to facilitate the accurate recrea- tion of the scanned image.
  • the scanner 10 is oriented with respect to the grid pattern 13 so that it can detect motion of the scanner and determine its relative position on the grid pattern 13.
  • the scan ⁇ ner 10 and the computer are then initialized to start scanning from a selected first position from which pixel data will be scanned and mapped into the computer's memo ⁇ ry. Typically, this first position is wherever the scan ⁇ ner is located after initialization, but can be a specif ⁇ ically selected position if desired.
  • a temporary coordinate position is established for the data collected by detector element 0 in preparation for running the "nearest algorithm,” (further described below) which is utilized to determine the memory locations at which pixel data should be stored for each element so as to accurately recreate the scanned image.
  • the "nearest algorithm” is an algorithm which operates by determining the one coordinate position, or memory address, which is mathematically nearest to the center of a particular detector element 48, rather than selecting a different coordinate position for each step taken by the image in either the X-axis or Y-axis direc ⁇ tion.
  • the "nearest algorithm” may select the same coordinate position twice for different detector elements because both detector elements are calculated to be clos- er to that one position than any other coordinate posi ⁇ tion.
  • each element in the de ⁇ tector array 32 can be calculated by determining the po ⁇ sition of either mouse Ml or M2 and determining the angle formed by the detector array 32 with either axis of the X-Y coordinate system. Other information regarding the length of the detector array and the distance from either end of the detector array to one of the mice is deter- mined for each scanner and input as a constant value. It should be noted that each mouse need not be linear to the detector array 32 and may be placed at any position, provided the distance from a mouse to an end of the de- tector array can be determined and input as a constant value.
  • the "nearest algo ⁇ rithm" can be utilized to calculate the coordinate posi ⁇ tion of pixels on the grid pattern which are nearest the center of detector elements in the detector array.
  • the "nearest algorithm” Typically, only integers should be utilized as inputs to the “nearest algorithm” if speedy (or in some situations, accurate) coordinate position determinations are to be made. For example, if element 0 was to be aligned directly over the center of a pixel, its coordi- nate position would be represented in integer values, and the pixel data detected by element 0 could be easily stored at a memory address which directly corresponds to the position of element 0.
  • the host computer's operating speed is below that necessary to calculate memory addresses for an en- tire array before a new position of the array is estab ⁇ lished, it may be necessary to use a parallel processing scheme to help speed up the host computer. If parallel processing is not available, it may be necessary to re ⁇ sort to actually calculating the nearest algorithm as described below.
  • a reference coordinate system is utilized to determine approximate temporary coordinate positions for the detector elements in route to establishing nearest memory addresses, as will be further explained below.
  • the reference coordinate system is shown as the U-V coordinate system.
  • the U-V coordinate system need not be placed exactly at the center of element 0 like the temporary X-Y coordinate system, and may be located up to one half (0.5) of a line width from the origin of the X-Y coordinate system.
  • the pixel data collected by element 0 may be directly as ⁇ signed a memory address. And, once pixel data from ele- ment 0 has been assigned to an appropriate temporary X-Y coordinate position, temporary X-Y coordinate position assignments and corresponding memory addresses can be established for the remainder of the elements, as is shown by the step 110. If a look-up table is utilized in place of the in-process operation of the "nearest algo ⁇ rithm," the step 110 would be replaced by the step of establishing appropriate memory addresses with a look-up table.
  • the "nearest algo ⁇ rithm" is executed for each of the temporary X-Y coordi ⁇ nate positions determined for the detector elements. Either way, the scanned pixel data is then stored in the appropriate, established memory addresses as shown by the step 130.
  • step 150 steps 90 through 130 are repeated, which is shown in step 150.
  • This loop would then be repeated for each detector element in the array for each new position of the scanner 10 until the image has been scanned or the operator desires to stop, as is shown in step 170.
  • each mouse Ml and M2 are both communicating motion information and position information to the computer. Motion information and position information are derived from the same basic signal. Quadrature signals output by the mice can be utilized to determine the ex ⁇ istence of motion and the direction of that motion.
  • the quadrature signals (as discussed in U.S. Application Serial No. 889,130 described above) can be used to indicate the position of the scanner over the grid pattern 13 and as an input for the "nearest algo- rithm", and for which motion information is irrelevant.
  • motion information is still important because it can be used to indicate a change in position of the scan ⁇ ner, which initiates the loop of step 150 for determining the coordinate positions of the elements.
  • a change in position which initiates the loop of step 150 occurs when either mouse Ml or M2 detects that a line or space has been crossed. Since this may result in the same calculation being done twice, such as when the scan- ner is moving approximately parallel to one axis, only line or space crossings separated by a predetermined pe ⁇ riod of time are utilized to determine when a change in position has occurred.
  • Fig. 4 is a flow diagram further illustrating the step 70 as shown in Fig. 3.
  • the scanner 10 is placed on the visually transparent grid pattern 13.
  • Motion detection is then commenced by each mouse in step 74.
  • a mouse can be operated to begin motion detection either remotely, through communication wires 34 or 36, or through a manual switch located somewhere on the housing 18, which is operative to send an operation signal to the mouse when depressed or released.
  • the scanner is then oriented to the X-Y coordinate system of the grid pattern as shown by step 76.
  • Orientation of the scanner can be accomplished through a program installed in the computer which uses the motion information of the scanner to determine the scanner's position with respect to ei ⁇ ther the X or Y-axis.
  • the computer will be able to discern the rows and columns of pixels in the grid pattern.
  • the computer will then assign either the X or Y-axis to one of the rows and or ⁇ ganize its memory banks in accordance with the orienta ⁇ tion of the mice.
  • the oriented scanner is still unable to deter ⁇ mine its position with regard to any fixed point on the grid pattern until it is instructed to start counting line or space crossings from a certain point.
  • the scanner is moved to a certain position on the grid pattern which corresponds to an initialization point for the memory of the computer.
  • the initialization point may be any point on the grid pattern.
  • a signal from the computer or a manual switch on the scanner commences position detection by the mice, which count each line or space crossing to determine the position of the mice, and thereby the scan- ner, over the grid pattern. Position detection will be disrupted by lifting the scanner off the surface of the grid pattern past the point of vision for the mice or upon signal from the computer or manual switch.
  • Scanning may be commenced from the initializa ⁇ tion point.
  • a signal from the computer or a manual switch on the scanner indicates when scanning is to be commenced.
  • Step 80 illustrates the selection of a first scan position, which can be any point on the grid pattern because the scanner is tracking its position from the initialization point and can start mapping to memory from one point as well as another. Disruption of position detector will likewise disrupt scanning, so that whatever portion of the image that has been scanned may be pre- served. ⁇
  • Fig. 5 is a flow diagram further illustrating the process of establishing a temporary coordinate posi ⁇ tion for detector element 0, as shown in step 90 of Fig. 3.
  • step 92 the X-Y coordinate position of element 0 i determined by determining the position of the mice from the element and calculating the differential posi ⁇ tion.
  • step 104 the actual X-Y coordinate position of element 0 is converted to a temporary X-Y coordinate position (0,0), regardless of where element 0 may be sit ⁇ uated on the grid pattern.
  • a temporary memo ⁇ ry position in the computer can be established which cor ⁇ responds to the temporary X-Y coordinate position and which can be made available for use when a backup in processing occurs.
  • the host computer is able to calculate memo ⁇ ry addresses from the temporary coordinate positions at a sufficient rate.
  • the U-V coordinate system which need not be directly transposed over the temporary X-Y coordinate system, can be oriented about at 5 the center of element 0, as is shown in step 106.
  • a flow diagram is shown further il ⁇ lustrating the process of running the "nearest algorithm" for the remaining elements in the detector array and es ⁇ tablishing appropriate memory addresses, as shown in step
  • Step 116 illustrates that it is first assumed that the temporary X-Y coordinate position of the next element is the same as the prior element and that a new memory address for the next element in the detector array is only required if a significant change in posi-
  • the temporary X coordinate position is 5 compared to the U coordinate position and the temporary Y coordinate position is compared to the V coordinate posi ⁇ tion. If the temporary X coordinate position is less than or equal to the U coordinate position, then the tem ⁇ porary X coordinate position is incremented by one posi- 0 tion. If the temporary Y coordinate position is less than or equal to the V coordinate position, then the tem ⁇ porary Y coordinate position is incremented by one posi ⁇ tion.
  • step 1208 the step 116 is consecutively repeated for each next element in the detector array while pixel data collected by the previous element is stored in an appropriate memory ad ⁇ dress as shown in the step 130.
  • a flow diagram further illustrating the process of determining the X-Y coordinate positions of the ele ⁇ ment 0 and the angle formed by the detector array with the X or Y-axis described in step 92 of Fig. 5 is shown in Fig. 7.
  • step 94 the X-Y coordinate position of element 0 is determined as described above.
  • Step 96 The distance (DX) from element 0 to element N-1 projected along the X- axis is then calculated as shown by step 96.
  • Step 98 likewise illustrates the calculation of the distance (DY) from element 0 to element N-1 projected along the Y-axis.
  • the angle formed by the detector array with either the X or Y-axis and its sine and cosine are deter ⁇ mined in steps 100 and 102 respectively. Since it is the sine and cosine of the angle that are really needed as inputs for operating the "nearest algorithm", the angle need not ever be actually calculated, in that the sine and cosine can be calculated from the values of DY and DX.
  • the sine of the angle (S) can be determined in ac ⁇ cordance with the following equation:
  • the value of the sqrt(DX 2 + DY 2 ) represents the ac ⁇ tual physical length of the array and is static. Thus, this value may be calculated before the first use of the scanner by a consumer and input into ROM or other memory of the computer by the manufacturer to be reused whenever needed.
  • U-V coordinate positions can be determined for use in step 110, which is further illustrated in Fig. 8. The U-V coordinate position for element 0 is within
  • NEXT U ⁇ LAST U + C
  • NEXT U will be the U coordinate position for that element and LAST U is the U coordinate position of the previous element.
  • NEXT U for element 1 would be equal to C, or C times 1 (the number of the element in the detector array for which NEXT U is being determined) , as is shown in step 118 of Fig. 8.
  • NEXT U for element 2 would be equal to (NEXT U for element 1) plus C, or C times 2.
  • NEXT U is then compared to the temporary X co ⁇ ordinate (derived from the X-Y coordinate position of the previous adjacent element) initially assigned to the next element. If, as stated above, NEXT U is greater than or equal to the temporary X coordinate, then the temporary X coordinate will be incremented by one and a new memory position will be created for that component of that ele ⁇ ment.
  • V coordinate position of the next adjacent element can be determined according to the following equation:
  • NEXT V LAST V + S
  • NEXT V will be the V coordinate position for that element and LAST V is the V coordinate position of the previous element. Assuming the U-V coordinate position of element 0 is (0,0), then NEXT V for element 1 would be equal to S, or S times 1 (the number of the element in the detector array for which NEXT V is being determined) . Likewise, NEXT V for element 2 would be equal to (NEXT V for element 1) plus S, or S times 2.
  • NEXT V is then compared to the temporary Y co ⁇ ordinate (derived from the X-Y coordinate position -of the previous adjacent element) initially assigned to the next element. If, as stated above, NEXT V is greater than or equal to the temporary Y coordinate, then the temporary Y coordinate will be incremented by one and a new memory position will be created for that component of that ele- ment.
  • pixel data is read from the detector element and stored in the memory address corre- ponding to the temporary X-Y coordinate position.
  • FIG. 9 A flow diagram illustrating the process depict- ed in Fig. 3 and further including the process of writing stored pixel data to a remote terminal is illustrated in Fig. 9.
  • Fig. 9 is substantially similar to Fig. 3 except that after the scanner has been placed on the grid pat ⁇ tern in step 72 of step 70, a signal from either the com- puter or a manual switch on the scanner is sent to a re ⁇ mote terminal, such as a printer or video display termi ⁇ nal (VDT) , and thereby enabling the remote terminal to receive information being transmitted to the memory of the computer.
  • a re ⁇ mote terminal such as a printer or video display termi ⁇ nal (VDT)
  • VDT video display termi ⁇ nal
  • step 140 is also added after step 130, which directs that pixel data and memory address information input to the memory be written to the remote terminal as well, so that visual display of the scanning of the image can be monitored during a scan.
  • Fig * 10 is block diagram schematically repre- senting an arrangement of component parts which could be used in the practice of the present invention.
  • Scanner 10 is shown with housing 18, position sensors 28 and de ⁇ tector array 32.
  • Communication wires 34 and 36 communi ⁇ cate scanner motion and position information signals, in the form of quadrature signals XA, XB, YA and YB, respec ⁇ tively, to up/down counters 200, which keep track of the position of both mice as they are moved across the grid pattern.
  • Data line 38 communicates scanned pixel data in analog signal form to a digitizer 202, which prepares the pixel data for storage in memory.
  • Timing line 40 pro ⁇ vides timing synchronization from timing generator 204 to the scanner so that the steps to the process illustrated above are carried out in properly timed sequence. End of signal line 42 communicates with timing generator 204 to indicate when a timing command communicated over timing line 40 has been completed.
  • Timing generator 204 also communicates with digitizer 202 and map calculator 206, which receives po ⁇ sition information from up/down counters 200 and deter ⁇ mines the memory addresses for scanned pixel data to be recorded in RAM (random access memory) 208.
  • RAM random access memory
  • elements 200, 202, 204 and 206 are shown in hardware form, these elements may be substituted by a software embodiment capable of accomplishing the same results.
  • Scanned data is communicated through digitizer 202 to RAM 208 where it is stored in memory addresses corresponding to the temporary X-Y coordinate positions or X-Y coordi- nate positions,determined in accordance with the process described above and under the control of the CPU (central processing unit) 210.
  • a VDT (video display terminal) 212 or other type of remote terminal may also be connected to CPU to receive and display the scanned image.

Abstract

Procédé d'utilisation d'un scanner (10) pour obtenir des données relatives aux éléments d'une image (16) sur une page (14) et effectuer un mappage desdites données dans la mémoire d'un ordinateur. Ce procédé consiste (a) à placer un scanner (10) comportant une longue rangée d'éléments (24) et deux souris optiques (20, 22) recouvrant une image (16) sur la page (14) à explorer, (b) à déterminer l'orientation du scanner (10) par rapport au quadrillage (13) en utilisant les informations de détection de mouvement par les deux souris (20, 22), (c) à positionner le scanner (10) à un point de départ où commence la détection de la position des souris (20, 22) et commencer l'exploration de la page (14) par le déplacement du scanner (10) à travers la surface du quadrillage (13), et (d) à enregistrer les données relatives aux éléments d'image numérisés par chaque élément détecteur à une adresse mémoire d'un ordinateur en communication avec le scanner (10).
PCT/US1989/005205 1988-11-15 1989-11-14 Procede de mappage de donnees relatives a des elements d'image numerises WO1990005963A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/271,453 US4942621A (en) 1988-11-15 1988-11-15 Method for mapping scanned pixel data
US271,453 1988-11-15

Publications (1)

Publication Number Publication Date
WO1990005963A1 true WO1990005963A1 (fr) 1990-05-31

Family

ID=23035642

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1989/005205 WO1990005963A1 (fr) 1988-11-15 1989-11-14 Procede de mappage de donnees relatives a des elements d'image numerises

Country Status (5)

Country Link
US (1) US4942621A (fr)
EP (1) EP0444083A4 (fr)
JP (1) JPH04503271A (fr)
AU (1) AU625289B2 (fr)
WO (1) WO1990005963A1 (fr)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993001678A1 (fr) * 1991-07-04 1993-01-21 Horst Woydich Porte-original pour la lecture de donnees stockees a plat
US5355146A (en) * 1990-03-05 1994-10-11 Bmc Micro-Industries Ltd. Multi-directional hand scanner and mouse
GB2353656A (en) * 1999-07-12 2001-02-28 Hewlett Packard Co Hand held scanner having plural position detectors or navigators
FR2883397A1 (fr) * 2005-03-18 2006-09-22 Eastman Kodak Co Procedes d'enregistrement et de lecture de donnees numeriques sur un support photographique

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03249870A (ja) * 1989-10-31 1991-11-07 Kuraray Co Ltd 光学読取り装置用のパッド
US5283557A (en) * 1991-07-05 1994-02-01 Ncr Corporation Method for converting high resolution data into lower resolution data
FR2681454B1 (fr) * 1991-09-16 1995-08-18 Aerospatiale Procede et dispositif de traitement d'informations alphanumeriques et graphiques pour la constitution d'une banque de donnees.
US5420943A (en) * 1992-04-13 1995-05-30 Mak; Stephen M. Universal computer input device
CA2097360A1 (fr) * 1992-06-03 1993-12-04 Paul Dvorkis Lecteurs optiques
US6031943A (en) * 1994-06-22 2000-02-29 Liu; Hong-Wen Method and apparatus for distortion detection of scanned image
JP3479948B2 (ja) * 1997-05-20 2003-12-15 理想科学工業株式会社 原稿位置決めシート付反射型原稿読取り装置
US6299329B1 (en) 1999-02-23 2001-10-09 Hewlett-Packard Company Illumination source for a scanner having a plurality of solid state lamps and a related method
US6229297B1 (en) * 1999-06-30 2001-05-08 Hewlett-Packard Company Device for determining the position of an object relative to a surface
US7748839B2 (en) * 2006-05-09 2010-07-06 Lexmark International, Inc. Handheld printing with reference indicia
US7682017B2 (en) * 2006-05-10 2010-03-23 Lexmark International, Inc. Handheld printer minimizing printing defects
SG177175A1 (en) * 2007-08-01 2012-01-30 Silverbrook Res Pty Ltd Handheld printer
JP2010154088A (ja) * 2008-12-24 2010-07-08 Seiko Epson Corp 位置と画像とを対応付ける画像処理
FR3063170B1 (fr) 2017-02-21 2019-06-07 Thierno Balde Dispositif d'enregistrement d'informations a partir d'une capture d'une image d'un document
US10373291B1 (en) 2018-01-31 2019-08-06 Google Llc Image transformation for machine learning
CN110969567B (zh) * 2019-11-18 2023-09-19 中国航空工业集团公司西安航空计算技术研究所 一种gpu线图元光栅化平移坐标系扫描方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4260979A (en) * 1979-12-31 1981-04-07 International Business Machines Corporation Apparatus for sensing non-coded images
US4803737A (en) * 1984-08-07 1989-02-07 Nec Corporation Optical digitizer
US4804949A (en) * 1987-03-20 1989-02-14 Everex Ti Corporation Hand-held optical scanner and computer mouse
US4862281A (en) * 1986-12-18 1989-08-29 Casio Computer Co., Ltd. Manual sweeping apparatus
US4866535A (en) * 1988-05-19 1989-09-12 Kabushiki Kaisha Method and device for interfacing an image scanner with an image processing device

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3297879A (en) * 1963-03-18 1967-01-10 W & L E Gurley Optical encoder responsive to movement in two directions
GB1425811A (en) * 1972-04-27 1976-02-18 Nat Res Dev Light pen
GB1488814A (en) * 1974-09-27 1977-10-12 Ferranti Ltd Apparatus for signalling the position of a point on a surface
US3957378A (en) * 1974-11-25 1976-05-18 The Bendix Corporation Two-axis moire fringe displacement transducer
DE2521618B1 (de) * 1975-05-15 1976-03-11 Zeiss Carl Fa Vorrichtung zum Messen oder Einstellen von zweidimensionalen Lagekoordinaten
CH626169A5 (fr) * 1976-11-25 1981-10-30 Leitz Ernst Gmbh
US4303914A (en) * 1978-03-06 1981-12-01 National Research Development Corporation Visual display input device
JPS54126426A (en) * 1978-03-24 1979-10-01 Matsushita Electric Ind Co Ltd Tablet input device
JPS55108130A (en) * 1979-02-13 1980-08-19 Omron Tateisi Electronics Co Reflection type photoelectric switch
JPS576996A (en) * 1980-06-17 1982-01-13 Tokyo Optical Absolute encoder
JPS576994A (en) * 1980-06-17 1982-01-13 Tokyo Optical Coding board for encoder
US4546347A (en) * 1981-05-18 1985-10-08 Mouse Systems Corporation Detector for electro-optical mouse
US4364035A (en) * 1981-05-18 1982-12-14 Kirsch Steven T Electro-optical mouse
US4390873A (en) * 1981-05-18 1983-06-28 Kirsch Steven T Electronic mouse
US4409479A (en) * 1981-12-03 1983-10-11 Xerox Corporation Optical cursor control device
JPS60246429A (ja) * 1984-05-22 1985-12-06 Nec Corp 相対的磁場安定化磁歪板
US4751380A (en) * 1986-11-25 1988-06-14 Msc Technologies, Inc. Detector system for optical mouse

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4260979A (en) * 1979-12-31 1981-04-07 International Business Machines Corporation Apparatus for sensing non-coded images
US4803737A (en) * 1984-08-07 1989-02-07 Nec Corporation Optical digitizer
US4862281A (en) * 1986-12-18 1989-08-29 Casio Computer Co., Ltd. Manual sweeping apparatus
US4804949A (en) * 1987-03-20 1989-02-14 Everex Ti Corporation Hand-held optical scanner and computer mouse
US4866535A (en) * 1988-05-19 1989-09-12 Kabushiki Kaisha Method and device for interfacing an image scanner with an image processing device

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5355146A (en) * 1990-03-05 1994-10-11 Bmc Micro-Industries Ltd. Multi-directional hand scanner and mouse
WO1993001678A1 (fr) * 1991-07-04 1993-01-21 Horst Woydich Porte-original pour la lecture de donnees stockees a plat
US5589951A (en) * 1991-07-04 1996-12-31 Woydich; Horst Pad for use in scanning data stored on a flat surface
GB2353656A (en) * 1999-07-12 2001-02-28 Hewlett Packard Co Hand held scanner having plural position detectors or navigators
GB2353656B (en) * 1999-07-12 2003-09-24 Hewlett Packard Co Edge to edge image sensor and navigator for portable scanner
FR2883397A1 (fr) * 2005-03-18 2006-09-22 Eastman Kodak Co Procedes d'enregistrement et de lecture de donnees numeriques sur un support photographique

Also Published As

Publication number Publication date
EP0444083A1 (fr) 1991-09-04
EP0444083A4 (en) 1993-01-27
AU625289B2 (en) 1992-07-09
AU4624289A (en) 1990-06-12
US4942621A (en) 1990-07-17
JPH04503271A (ja) 1992-06-11

Similar Documents

Publication Publication Date Title
WO1990005963A1 (fr) Procede de mappage de donnees relatives a des elements d'image numerises
US5420943A (en) Universal computer input device
US4984287A (en) Method for orienting a dual mouse optical scanner
KR100906520B1 (ko) 광학 판독용 인코딩 종이
CA1305763C (fr) Souris de position absolue
US4814553A (en) Absolute position controller
US4720703A (en) Display method and apparatus employing cursor panning
US5818424A (en) Rod shaped device and data acquisition apparatus for determining the position and orientation of an object in space
US4181952A (en) Method and means for minimizing error between the manual digitizing of points and the actual location of said points on an _electronic data entry surface
US5179656A (en) Three dimensional directional pointer icon
US4146926A (en) Process and apparatus for optically exploring the surface of a body
KR860002745A (ko) 광의 3차원 디지탈 데이타 수집 시스템
JPH04501778A (ja) 光学マウスのための改善された検知器システム
EP0159461A2 (fr) Système de traitement d'image
US4601002A (en) Digital technique for constructing variable width lines
JPS63123165A (ja) カーソルと表示エンテイの相関方法
JPH0547863B2 (fr)
JPH0437466B2 (fr)
Vuylsteke et al. A coded illumination pattern based on PN-sequences for 3-D robot vision
JPH0366675B2 (fr)
JPH0431435B2 (fr)
CA1253251A (fr) Camera de telemetrie tridimensionnelle
JPH0668245A (ja) 画像回転補正処理方法および画像回転補正処理装置
JPH02146687A (ja) 基準点検出方式
JPH0440512A (ja) 座標読み取り装置

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AU JP

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE FR GB IT LU NL SE

WWE Wipo information: entry into national phase

Ref document number: 1989912769

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1989912769

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 1989912769

Country of ref document: EP