with reference to fig1 the hand - held scanner 10 in accordance with the present invention will be illustrated in an operation wherein it senses non - coded graphic data 11 on a page 12 which may contain associated alphanumeric data . a grid 13 containing x ordinates 14 and y ordinates 15 is interposed between the scanner 10 and the page 12 at a fixed position with respect to diagrammatic data 11 . the operation of the present invention may be better understood with reference to fig2 which shows an enlarged view of the portion of the page 12 containing the graphic data 11 with a portion of grid 13 superimposed thereupon , and the planar face 16 of the hand - held scanner 10 is shown superimposed upon the planar page 12 in phantom lines in order to more clearly show the relationship of the component parts in the scanner face 16 with respect to the graphic data 11 and the grid 13 as the scanner traverses the graphic data in the direction shown by the arrows . scanner face 16 contains a linear array of photosensitive units d 1 through d n . for convenience in illustration , linear array has been shown to contain about a dozen of these photosensitive units . in actuality , the line of units on the face of the scanner would be from one to two inches in length and contain several hundred of these photosensitive units . as will be hereinafter described in greater detail , this linear array 17 of photosensitive units d 1 through d n will sense graphic data 11 as the scanner face 16 traverses the graphic data . in addition , scanner face 16 contains photosensors v 1 and v 2 mounted at fixed positions thereon and photosensors h 1 and h 2 also mounted at fixed positions thereon . photosensors v 1 and v 2 are only capable of sensing y ordinates or lines in grid 13 while photosensors h 1 and h 2 are only capable of sensing x ordinates or lines 14 in grid 13 . while photosensors v 1 and h 1 and v 2 and h 2 are shown at positions spaced from each other in the drawing , for best results , it would be desirable that v 1 abut h 1 and that v 2 abut h 2 so that they are respectively substantially at the same position . in operation , grid 13 must remain in a fixed position with respect to graphic material 11 irrespective of the movement of hand - held scanner face 16 . conveniently , the grid may be formed on a transparent glass or plastic member under which page 12 containing graphic data 11 is maintained during the scanning operation . as will be described hereinafter in greater detail , y lines 15 in grid 13 are of one color , e . g ., red and x lines 14 are of another color , e . g ., blue . in order to sense only the red lines , photosensors v 1 and v 2 have associated therewith band pass filters which pass only red color . likewise , photosensors h 1 and h 2 have associated therewith filters which pass only blue light in order that they may sense blue lines 14 . in order that linear photosensitive unit array 17 have the capability of sensing only graphic data 11 without being affected by x lines 14 or y lines 15 as indicated hereinafter , each photosensitive unit d 1 through d n has an associated band stop filter which prevents the passage of either red or blue light . with reference to fig3 the face of the hand - held scanner 16 has not traversed a graphic data 11 for a substantial distance as shown and photoconductors v 1 and v 2 have crossed a plurality of y lines 15 while photoconductors h 1 and h 2 have crossed a plurality of x lines 14 . at the same time , of course , linear photosensitive array 17 has crossed a substantial portion of graphic data 11 . now with reference to fig4 let us first consider how the grid lines respectively sensed by photoconductors h 1 , h 2 , v 1 and v 2 are sensed and forwarded to the processor . h 1 , h 2 , v 1 and v 2 photoconductors each respectively comprise a photosensitive diode 18 , 19 , 20 , and 21 . monochromatic band pass filters 22 and 23 respectively associated with photodiodes 18 and 19 pass only blue light . thus , photosensors 18 and 19 will generate current only when the respective h 1 or h 2 photosensitive unit on scanner face 16 crosses a blue y line 14 in grid 13 ( fig2 ). similarly , since band pass filters 24 and 25 pass only red light , photosensitive diodes 20 and 21 will respectively generate current only when photosensitive units v 1 and v 2 cross a y line 15 in grid 13 ( fig2 ). the photosensitive states of diodes 18 through 21 will respectively be amplified through amplifiers 26 through 29 and appear as output signals on lines 30 through 33 respectively . during the operation of the scanner , counters 34 through 37 are regularly incremented through respective inputs 38 through 41 from oscillator 47 at repetitive regular time increments . each counter 34 through 37 has an associated register 42 through 45 into which the count from the associated counter may be loaded and held or buffered until the count is transmitted to the central controlling processor 46 . in the operation of the circuitry being described , each of the four counters 34 through 37 is incremented by oscillator 47 to provide the timing . when each x or y line in the grid is crossed by a v 1 , v 2 , h 1 or h 2 photosensitive unit capable of sensing it , the appropriate color is passed through filters 22 through 25 and activates the appropriate photosensitive diodes 18 through 21 . this will result in a signal on one of the lines 30 through 33 . such a signal will be input to the respective counters 34 through 37 and to the associated registers 42 through 45 to cause the count in the counter at the time the particular grid line is crossed to be loaded into and stored in the associated register 42 through 45 and to reset the counter so that a new count can commence of the pulses being fed to the respective counter from oscillator 47 over lines 38 through 41 . the count loaded into the associated register 42 through 45 represents a count from the crossing of the last previous grid line by the particular photoconductor unit h 1 , h 2 , v 1 and v 2 until the present crossing . accordingly , this count is representative of one of the orthogonal components of the velocity of the particular photosensitive unit from either one y line to the next or one x line to the next . simultaneously with the loading of the count into the respective register 42 through 45 , the signal on the respective output line 30 through 33 will be input to an associated flag 48 through 51 . when a respective flag is &# 34 ; up &# 34 ; indicating that there is a count in its associated buffer register 42 through 45 , an output signal from the respective flag on one of output line 52 through 55 will be transmitted to processor 46 via input / output bus 56 . when the processor is ready , it will then receive the output of the particular loaded register 42 through 45 respectively over bus 57 through 60 into i / o bus 56 . at the same time the processor will reset the appropriate flag 48 through 51 by a reset signal on line 61 through 64 . the flow chart for the processor routine involved in transferring the information stored in registers 42 through 45 is shown in generalized form in fig6 . the processor repetitively scans each of flags 48 through 51 ( fig6 ), decision block 65 ; when a flag is set , its associated output register is read into the processor , block 66 . in the processor it is placed onto a sequential stack , block 67 which stores the counts between either x or y lines crossing for each of photoconductor units h 1 , h 2 , v 1 and v 2 ( block 67 ). as indicated by block 68 , each time one of the photoconductive units v 1 , v 2 , h 1 and h 2 crosses a respective horizontal or vertical line , as indicated by a count in one of the registers 42 through 45 , the processor initiates a procedure whereby the linear image array of photosensitive units d 1 through d n ( fig2 and 3 ) is read to provide an indication of that portion of graphic data 11 being crossed by linear image array 17 at the point that one of the photoconductors v 1 , v 2 , h 1 and h 2 is crossing an x or y line . it should be noted that while in the particular embodiment of the present invention the linear image array 17 is read upon each crossing of an x or y line , this procedure is not critical , i . e ., the image array may be read at different intervals either more or less frequent dependent upon the nature of the graphic data 11 being sensed as well as the quality of the image of the graphic data 11 which is to be subsequently reproduced by the text processing system . in any event , with reference to fig5 and 6 , the reading of linear image array 17 will now be described . with reference to fig5 each photosensitive unit d 1 through d n , in linear image sensing array 17 comprises a photosensitive diode 69 and a band stop filter 70 . the band stop filters 70 prevent the passage of red and blue light so that the photosensive units d 1 through d n are incapable of being affected by either the red or blue lines in reference grid 13 ( fig2 ). thus , at a particular instance in the movement of scanner face 16 ( fig2 and 3 ) across graphic data 11 , a line in the graphic data 11 crosses or optionaly fails to cross the photosensitive unit d 1 through d n , the diode 69 will generate current and a signal will be amplified through amplifier 71 and appear on the respective output line 72 . the status of each particular output line 72 , i . e ., either up or down will be stored in an associated unit position in output register 73 . thus , when the processor is ready to read the image array at a particular point in time , a signal will be input on line 74 to unload register 73 serially back to the processor along output line 75 . since the output along line 75 from register 73 is serial and register 73 may have in the order of several hundred unit positions 76 representing each of the several hundred possible photosenstive units d 1 - d n , a counter 77 is provided which receives the same read signal from the processor along line 78 and increments the register 73 through an increment count corresponding to the number of register units 76 to provide the serial readout back to the processor along line 75 . by the operations thus described , we now have stored in the processor 46 a velocity record in counts of oscillator 47 for the movement of photoconductors h 1 and h 2 between a known pair of x lines in reference grid 13 and a similar record for photoconductors v 1 and v 2 cross a known pair of y lines 15 in grid 13 . in addition , there is stored in the processor representations of that portion of graphic data image 11 being traversed by linear image array 17 at each of the crossings of x lines 14 and y lines 15 respectively by photoconductors h 1 , h 2 , and v 1 , v 2 . before describing how the processor handles the information sent through the various photosensitive elements , there will be described with respect to fig7 and 8 a very convenient arrangement on the face 16 of scanner 10 of the positions of photoconductors v 1 , v 2 , h 1 and h 2 with respect to the linear photoconductor image array 17 . as shown in fig7 photoconductors v 1 and h 1 abut each other and photoconductors v 2 and h 2 abut each other and both of these pairs are in substantially the same line as linear array 17 . as will be seen subsequently in greater detail , with this arrangement , once the relative velocities of the v 1 , h 1 , v 2 and h 2 are determined , a standard algorithm may be utilized to determine the exact position of each of the photosensitive units d 1 through d n at a particular point in time , e . g ., the position shown in fig8 when the image array is sensing or reading graphic data 11 . the illustration of fig8 is essentially the same as that of fig2 or 3 except for different positioning of photoconductors v 1 , h 1 , v 2 and h 2 with respect to the linear array 17 . with reference to fig9 and 11 , the operation of processor 46 in the practice of the present invention will be described . as previously described with respect to fig4 at some interval the data in registers 42 , 43 , 44 , and 45 respresentative of the counts between the respective pairs of grid lines traversed by either v 1 , v 2 , h 1 and h 2 will be stored in the processor . the processor will take the reciprocal of each of the latest register count ( block 79 ) and store the same in the respective velocity register maintained in the processor for each of photoconductors v 1 , v 2 , h 1 and h 2 ( block 80 , fig9 ). at regular intervals determined by a clock in processor 46 , the processor goes through a &# 34 ; monitor &# 34 ; routine ( fig1 ) to determine whether the image is ready to be read . first , block 81 , the computer reads the updated velocity registers for photodiodes v 1 , v 2 , h 1 and h 2 . then , it updates the end points of linear image array 17 ( block 82 ). where the scanner has the simplified embodiment shown in fig7 and 8 in which the photoconductor abutting pairs v 1 , h 1 , and v 2 , h 2 are at opposite ends of linear array 17 , the position of the two diodes of pairs respectively serve as the required end points . in such a case , the coordinate values of the respective two end points are updated merely by adding the respective values stored in the velocity register ( block 80 ) for each of the four photoconductors to the previous end point value . on the other hand , where as in fig2 and 3 the photoconductors v 1 , v 2 , h 1 and h 2 are not paired and positioned at the ends of the linear array 17 , then , photosensitive units d 1 and d n at opposite ends of the array serve as the end points and the updating is somewhat more complex . the updating of such a case is described in greater detail hereinafter with respect to fig1 and 13 . in any event , once the coordinates of the end points have been determined , irrespective of the method , the change in end points since the last image reading is then determined ( block 83 ), and this change in end point is compared to a minimum reference change in end point ( decision block 84 ). this reference represents the minimum change in position of the array which will warrant a sensing of the graphic image 11 by linear array 17 . if the change in end point is insufficient , the monitor routine will return to be repeated again . on the other hand if the change in end point exceeds the minimum required , the computer will now exercise the image routine block 85 in order to sense the image . now with reference to fig1 , the image reading routine will be described . first , as indicated in block 86 , the processor sends appropriate signals along lines 74 and 78 ( fig5 ) to cause a serial reading of the image output register 73 into the processor along lines 75 . then , as indicated in block 87 , the image array end points determined by the monitor routine of fig1 , block 82 , are fetched . with these end points fixed , the exact position of each of the image pels or subunits as determined by each of the photosensitive units d 1 through d n ( fig5 ) may be determined and recorded associated with a defined position in the graphic data 11 being read . this may be carried out using the &# 34 ; dot - approximation algorithm &# 34 ; described in detail in appendix a appearing on page 681 in &# 34 ; communications of the acm &# 34 ;, november 1973 , vol . 16 , no . 11 . this algorithm sets forth a technique for determining the coordinates of each point on a line between two given end points . a substantially similar routine for accomplishing the same results may be found in the article &# 34 ; algorithm for computer control of the digital plotter &# 34 ; by j . e . bresenham appearing at pages 25 - 30 of the ibm systems journal , vol . 4 , no . 1 , 1965 . it should be noted with respect to the monitor ( fig1 ) and image routines ( fig1 ) described that the sampling in order to determine whether the linear array 17 should be read occurs in response to a fixed periodic time signal generated within the processor . this is in effect an alternative of the procedure described hereinabove wherein the image array 17 is read each time one of the photodiodes v 1 , v 2 , h 1 and h 2 crossed a grid line . either expedient is operable . however , with the approach described in fig1 and 11 , there is greater control of the quality of the image of the graphic data being recorded , i . e ., the readings of linear array 17 may be made more frequent if greater quality is required . in the previous description with respect to the monitor procedure , fig1 , the updating of the image array end points was provided with respect to the simplified scanner embodiment of fig7 and 8 . at that point it was indicated that where the v 1 , h 1 and v 2 , h 2 pairs are not at the ends of the linear array 17 , then photosensitive units d 1 and d n in the linear array 17 would serve as the end points , and the updating of these end points would be somewhat more complex . this embodiment will now be described with respect to fig1 and 13 . in fig1 an illustration is shown wherein the scanner 16 has been moved from position 89 shown in dotted lines to postion 90 and an updating of array and points d 1 and d n must be made . in making this movement , the scanner face 16 has been rotated to the extent shown . for convenience in illustration the graphic material which is being scanned is not shown , but we shall assume that graphic material being scanned is of the same nature as that shown in fig2 and 3 . the routine for the end point update is shown in fig1 for the movement shown in fig1 . first , block 91 , the v 1 , h 1 and v 2 , h 2 photosensitive pairs are updated in the manner described above for block 82 ( fig1 ) by adding the values stored in the velocity registers ( block 81 ) for v 1 , h 1 , v 2 , and h 2 to the previous v 1 , h 1 , v 2 , and h 2 values . next , block 92 , a constant b is calculated ; b is a factor which varies with the extent of rotation and is determined by the formula : ## equ1 ## as indicated , b is determined by the four updated velocities v h . sbsb . 1 , v h . sbsb . 2 , v v . sbsb . 1 , and v v . sbsb . 2 in the velocity registers ( block 81 ). next , block 93 , δθ is calculated . δγ which is shown in fig1 is the extent of rotation of the scanner face 16 during the movement from the initial position 89 to present position 90 . it is based upon rotational factor b calculated above and the constant factor a which as shown in fig1 is the fixed distance between photoconductor pairs v 1 , h 1 and v 2 , h 2 . then , block 94 , the present cumulative rotation from the beginning of the scan operation until the present step is calculated as the new θ . as set forth , the new θ is merely the δθ of the step shown plus the previous cumulative extent of rotation of the scanner face 16 from the original position at the start of the scan which is assumed to have linear array 17 parallel to y ordinates 15 . having thus calculated the new cumulative extent of rotation θ , now the xy distance with respect to orientation grid 13 of end point d 1 from diode pair v 1 , h 1 is calculated , block 95 . this is accomplished through the two equations for x 1 and y 1 : where x , y are the original coordinate distance of photosensitive unit d 1 from photoconductive pair v 1 , h 1 which is , of course , fixed on the scanner face 16 . the value x 1 , y 1 are the coordinate distances of photosensitive d 1 from photosensitive pair v 1 , h 1 on grid 13 . since coordinate position of v 1 , h 1 has already been updated , block 91 , the updated coordinate position of d 1 is now known . following substantially the same routine , block 96 , end point d 2 may be updated based upon the updated position of diode pair v 2 , h 2 ( as calculated block 91 above ). having now updated the positions of end points d 1 and d n the routine set forth in fig1 commencing with block 87 may be followed through using d 1 and d n as the end points . while the invention has been particularly shown and described with reference to a preferred embodiment it will be understood by those skilled in the art that various other changes in form and detail may be made without departing from the spirit and scope of the invention .