Abstract:
An apparatus and method for removing background noise and high frequency noise from an image by comparing each pixel in the image with neighboring pixels defining a variably shaped and sized kernel. The size and shape of the kernel are optimized for the particular characteristics of the data to be analyzed.

Description:
BACKGROUND OF THE INVENTION 
     The invention pertains generally to the field of image processing, and, more particularly, to the field of generating quantifiable images from digital images representing data spatially as pixel patterns of greater and lesser intensity. 
     The preferred embodiment of the invention is adapted for analysis of biological data generated in recombinant DNA research and other biological research. Such data includes 2D gels, DNA sequencing gels, gel blots, RFLP, DNA blots, microtiter color, microtiter fluorescence and other types of data presented spatially in an image. Typically, such images consist of a plurality of pixels with areas of pixels of varying intensity representing some amount of a particular DNA or protein with the intensity attributable to the protein being superimposed upon intensity representing background noise and high frequency noise caused by such things as pinholes in the film, penetration of the film by gamma rays etc. 
     Although the invention will be described in terms of its application to biological data, it will be appreciated that the teachings of the invention have utility in other fields of analysis of images. 
     A problem in analyzing such data in the past so as to be able to quantify the amount of a protein represented by a particular area of pixels in the image has been how to separate the intensity representing the data from the intensity caused by background noise. Although pixel intensity is the concept used herein to convey the teachings of the invention, pixel value is the general concept contemplated by the teachings of the invention. That is, the pixel values being analyzed may represent something other than light intensity. For example, each pixel in an image may represent the strength of radio transmissions from a small sector of the sky such that the invention could be used in radio astronomy applications. 
     In the past, such techniques as rolling ball filters have been used for background noise removal from images. Such a teaching is found in a conference paper by Rutherford et al. entitled &#34;Object Identification and Measurement from Images with Access to the Database to Select Specific Subpopulations of Special Interest&#34; published at the E-O Lase and E-O Imaging Conference sponsored by S.P.I.E., January 1987 with the proceedings published in May of 1987. There, the authors describe a method of background correction, i.e., noise removal, by use of a rolling ball filter which effectively takes the minimum pixel value in the ball filter region as the pixel value for the background image. The resultant image is then subtracted from the digitized image. A pipeline image array processor is used to perform this process. Such a technique however is not optimized for removal of background noise and high frequency noise in all situations because it does not take into account the varying geometric shapes of the data of interest in many varied application and because it does not take into account other application specific phenomenon such as vertical noise strips, dead spaces etc. 
     Accordingly, a need has arisen for apparatus and a method to optimize the noise removal process for data presented in many varied spatial formats. 
     SUMMARY OF THE INVENTION 
     According to the teachings of the invention, there is disclosed herein a method and apparatus for background noise removal which uses a variable shape and a variable size kernel or neighborhood of adjacent pixels surrounding or next to the pixel being processed. The value of the pixel being processed is compared to all, or some selected subset, of the pixels in the neighborhood to find the minimum value. This minimum value is then substituted for the value of the pixel being processed. When all pixels have been so processed by comparing them to the values of the surrounding pixels in the corresponding neighborhood (each pixel has its own neighborhood), the resulting image is a &#34;background image&#34;. A background image is an image where each pixel has the value of the smallest valued pixel in the neighborhood to which it was compared. Of course, those skilled in the art will appreciate that the background removal process can also be performed on a reverse video image by finding the maximum pixel value in each neighborhood and substituting that value for the value of the pixel of interest corresponding to that neighborhood. 
     The background image may then be further processed in some embodiments to remove high frequency noise. In one embodiment, high frequency noise is removed by processing the background image to generate a &#34;maximum image&#34;, i.e., an image generated from the background image showing the maximum pixel values for each neighborhood in the background image. This maximum image is generated by using a smaller neighborhood than used in generating the background image and then using this smaller neighborhood to process the background image as follows. Each pixel has its value compared to the values of the pixels in a corresponding neighborhood of surrounding pixels. The maximum value in each neighborhood is then substituted for the value of the corresponding pixel. When this has been done for all pixels, the maximum image is complete. This maximum image is substantially devoid of high frequency, large amplitude noise which dips below the surrounding neighborhood such as is characteristic of pinhole defects in film etc. This maximum image is subtracted from the starting image to generate a &#34;background removed image&#34;. 
     In another embodiment according to the teachings of the invention, the maximum image is used as a starting image in an apparatus to perform a process to remove high frequency, low amplitude noise. In this process, a neighborhood is used which is smaller than the neighborhood used to generate the background image. Each pixel value for a pixel of interest is added to the pixel values for all the other pixels in the corresponding neighborhood. The sum is then divided by the number of pixels in the neighborhood to derive an average pixel value, and the value of the pixel of interest is set equal to this average value. After this is done for all pixels, the resultant image is subtracted from the original image used to generate the background image to arrive at a background removed image. 
     In another alternative embodiment, the average image may be generated directly from the background image and the resulting image subtracted from the original image to derive the background removed image. 
     In another alternative embodiment, the image generated by the averaging process may be generated directly from the background image, and the resulting image is used as the input image for the process of generating the &#34;maximum&#34; image. The resulting image is subtracted from the original image to derive the background removed image. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIGS. 1(a) and 1(b) show, respectively, a typical autoradiograph of a 1-D gel separation and the same image with the data removed leaving only the background intensity showing. 
     FIG. 2 a drawing showing how the data bearing image pixel value profile compared to the background pixel value profile. 
     FIG. 3 is a block diagram of the hardware which can be used according to the teachings of the invention. 
     FIG. 4 is a flow chart for the process for removing background noise from the image. 
     FIGS. 5 through 7 illustrate the process of background noise removal by comparison to neighborhood pixel values. 
     FIG. 8 is a more detailed flow chart of the background noise removal process. 
     FIGS. 9 and 10 are alternative processes for selection of kernel size and shape. 
     FIGS. 11 and 12 illustrate how different kernel shapes are optimized for various data applications. 
     FIG. 13 is a flow chart for the preferred embodiment of the process of background noise removal. 
     FIG. 14 is a more detailed flow chart illustrating the process of generating a maximum image. 
     FIG. 15 is a more detailed flowchart illustrating the process of high-frequency, low-amplitude noise removal by averaging. 
     FIG. 16 is a flow chart for the process of generating a percent change image. 
     FIGS. 17(a) through 17(e) are the components of a quad display and the quad display itself. 
     FIG. 18 is another type of quad display. 
     FIG. 19 illustrates the concept of linked cursors for the quad display. 
     FIG. 20 illustrates the process for alignment of images 1 and 2 which must be performed prior to the computation of values for the cursor locations in the quad display. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Referring to FIG. 1(a), there is shown an image of a typical autoradiograph of a 1-D protein separation. Each of lanes 10 and 24 contains separated bands of radioactively labeled proteins from different samples. For example, lane 10 contains bands 12 and 14 with the difference in pitch of the crosshatching of band 14 indicating that this band is of greater brightness or intensity than the intensity of band 12. Likewise, bands 16, 18, 20 and 22 in FIG. 1(a) all have varying degrees of brightness or intensity. A similar situation exists for lane 24, which is separated from lane 10 by a dead space 26. The varying intensity of each band is indicative of the amount of the particular protein or proteins represented by that band which was present on the gel at that particular position. 
     It is useful to be able to quantify an image such as shown in FIG. 1(a) such that the intensity of the various bands can be measured as an indication of the amount of protein represented thereby. The difficulty with this approach, however, is that the various bands have their intensities superimposed upon background noise which, because of its varying intensity across a lane, causes errors. That is, the background noise can be thought of as forming an image of varying intensity which would still be present even if there were no data represented in FIG. 1(a). FIG. 1(b) is a drawing showing this background image. The background image has a lane 10&#39; which corresponds to lane 10 in FIG. 1(a) and a lane 24&#39; which corresponds to the lane 24 in FIG. 1(a). The differences in pitch in the crosshatching of lanes 10&#39; and 24&#39; conveys in pictorial form the variation in the intensity or brightness of the background noise in the lane at various locations. For example, the area 28 in lane 10&#39; has a brighter background intensity than the area 30. By superimposing the image of FIG. 1(a) on the image of FIG. 1(b), it can be seen that the relatively brighter intensity of band 14, which overlies an area of lesser intensity in the background image, as compared to a less-bright band 18, which overlies an area of brighter background intensity in FIG. 1(b). For this reason, the relative intensities of the bands 14 and 18 cannot be used directly to quantify the amount of protein at those respective positions in the gel without creating errors caused by the varying intensity of the background image along lane 10&#39;. Thus, according to the teachings of the invention, the background image of FIG. 1(b) is derived by image processing of the image represented by FIG. 1(a), and the resulting image is then subtracted from the image of FIG. 1(a) to leave a quantifiable data image. 
     Referring to FIG. 2, there are shown comparative intensity profiles through the image of FIG. 1(a) to show the effect of background removal. The intensity trace labeled 32 represents the intensity of the original image which includes both intensity attributable to data as well as intensity attributable to background noise. The trace labeled 34 represent the intensity of the original image after background removal and, therefore, represents the intensity attributable to the quantity of a particular protein located at the corresponding location on the gel. 
     According to the teachings of the invention, a manually manipulated cursor having a variable size and a variable shape may be placed over any band of interest in the background-removed image to determine the intensity of that band attributable to the presence of a protein of interest. The process of determining the intensity caused by the data essentially involves the process of integrating the trace 34 to determine the area under any particular peak. Typically, the result of this integration will be reported at the touch of a key on a computer keyboard. 
     Referring to FIG. 3, there is shown a block diagram of a computer apparatus according to the teachings of the invention. Image film 36, which contains a spatial depiction of the data to be analyzed, is placed on a light box 38. The light box shines light through the image film to create a pattern of light which has varying spatial intensity in accordance with the data and the background noise. Also, the image may be acquired by shining light on a nontranslucent film such as a polaroid shot. The resulting light pattern contains the data to be analyzed. This light pattern is converted by a video camera 40 into a video signal on line 42 representing an analog form of a raster-scanned version of the image on film 36. This analog signal is digitized in a data converter interface 44 and results in a stream of digital data on bus 46. This stream of digital data is read by a computer 48 and is stored in memory for further image-processing operations. The computer 48 is typically an IBM AT™ personal computer with an image processor card set plugged into the card slots. The image processor card set is an off-the-shelf, image-processing circuit manufactured by Matrox under the trademark MVP-AT™ Image-Processing Card Set. The computer 48 interfaces with the user through a mouse 50, a keyboard 52 and a monitor 54. An external memory 56 stores data and programs. Several software modules according to the teachings of the invention are shown as stored in memory 56. They are: a neighborhood shape/size interfacing module 58; a background removal module 60; a smoothing module 62; and an averaging module 64. The neighborhood shape/size interface module 58 serves to determine the shape and size of a neighborhood or kernel of pixels the values of which will be compared to the value of a pixel of interest in the kernel to determine the spatial intensity patterns of the background image. Typically, the shape of the neighborhood is determined by the computer for the particular application involved and relates to the typical shape of the data patterns to be analyzed. However, in alternative embodiments, the shape of the neighborhood may be set by the user in any of several different ways. For example, at start-up time, or upon switching applications, the computer can prompt the user through monitor 54 to determine what type of data is to be analyzed. After the user responds, either through the keyboard 52 or the mouse 50, the computer can put up either a textual, verbal or a pictorial menu of neighborhood shapes to be used. The user can then indicate which shape to use either by selecting it with mouse 50 or by typing in the code for the shape via keyboard 52 or by stating the shape. Alternatively, the user may sketch the neighborhood shape and/or size to be used through use of the mouse 50. In some embodiments, the shape of the neighborhood will be selected by the computer 48 based upon the user response regarding what type of data is to be analyzed. In some embodiments, a first neighborhood shape will be used to get rid of particular noise patterns having specific shapes followed by the use of anther shape for the neighborhood which is keyed to the shape of the particular data or application for which the teachings of the invention will be used. 
     The size of the neighborhood to be used generally depends upon the typical size of the data spatial patterns to be analyzed. In the preferred embodiment, the size of the neighborhood is chosen which has a largest dimension which is two and one-half times the size of the largest data spatial pattern to be analyzed. In the preferred embodiment, the user may be prompted for the desired size for the neighborhood and may respond either in terms of a number or a code for the desired size. Alternatively, the selected shape for the kernel may be displayed on the screen, and the user may adjust the size of the kernel by having the kernel superimposed upon the image to be analyzed and using a &#34;rubber band&#34;-type cursor to adjust the size of the kernel. The details as to how the shape and size of the kernel to be used are selected by the user or by the computer are not critical to the invention. 
     The details of the remove background image module 60 will be described in greater detail below. The basic function of this module is to determine the level of background intensity throughout the image to be analyzed and to create a background image reflecting that background intensity at all points in the background image. This background image may then be subtracted from the original image in some embodiments to derive a background removed image. 
     The smooth background image module 62 removes high-frequency, high-amplitude noise (high-amplitude noise for purposes of this invention means noise which dips below the level the surrounding neighborhood) by finding the maximum pixel in each kernel of the background image and setting the value of the pixel of interest in this kernel to the maximum value found in the kernel. When this is done for all pixels and their corresponding kernels &#34;maximum&#34; background image has been completed. This serves to get rid of high frequency, large amplitude noise characterized by pixels of low intensity in the background image such as might be caused by pinholes in the film, gamma rays, etc. 
     Finally, the averaging module 64 gets rid of high frequency, small amplitude noise in either the background image or the smoothed background image generated by module 62. This is done by averaging all the pixels in a neighborhood and setting the pixel of interest in each neighborhood to the average value. Both modules 62 and 64 will be described in more detail below. 
     Referring to FIG. 4, there is shown a flow chart for a basic embodiment of a process according to the teachings of the invention for background removal. The first step, symbolized by block 66, is to acquire the image to be analyzed. Specifically, the image to be analyzed is digitized into a plurality of pixels. These pixels define an image which contains data to be analyzed and displays this data in terms of varying spatial patterns of intensity, color, fill pattern or other means of displaying values for the pixels. How the value for each pixel is depicted is not critical to the invention. Typically, pixel values will be displayed in terms of their intensities. For some applications, the data to be analyzed is shown as dark spots on a lighter background such as autoradiography. In those applications, a &#34;negative&#34; or reverse video image is generated from the acquired image before further processing. In other applications, the data to be analyzed is shown as lighter spots on a dark background. In such applications, the acquired image is used as is without doing a reverse video image. In some embodiments, it is useful to average the original acquired image before further processing to remove the background. This averaging process is identical to the process described below with reference to FIG. 15 carried out on the background removed image or the image generated by the process described with reference to FIG. 14. 
     Next, the computer system interacts with the user to select a particular kernel size and/or shape for use in generating the background image, as symbolized by block 68. As noted earlier, the kernel shape is typically selected by the computer based upon the type of data to be analyzed in the preferred embodiment. That is, if the data takes the form of vertical rectangular blocks, as in the case of one-dimensional separations of DNA or proteins, then the preferred kernel shape is usually rectangular. However, if the data to be analyzed takes the form of circular spots such as in DNA library screens, cells tagged with fluorescing antibodies, or images of 96-well microtiter plates, then the preferred kernel shape is circular. 
     Generally speaking, the size of the kernel should be substantially larger than the size of the largest data area to be analyzed. That is, if the largest data spot to be analyzed is a circle of 2 mm diameter, then the preferred kernel shape and size is a circular area having a diameter sufficient to cause the total are within the kernel to be approximately 2.5 times the radius of the 2 mm diameter data spot. The reason for this size relationship is to insure that at least some background area outside the area of data of interest are included within the kernel. This is necessary to insure that a proper background image is generated. This is because the process of generating the background image involves comparing the value of each pixel in the image to be analyzed to the values of the surrounding pixels to find a minimum value characteristic of the background. Thus, if no background pixels are included within a kernel which happens to be centered over a data spot, then the minimum intensity value which will be found in that kernel will not in fact be representative of background intensity at that location but will be representative of the intensity of the data as superimposed upon the intensity of the background. 
     As noted earlier herein, the kernel size may be selected by the user using any one of a number of different methods, none of which are critical to the teachings of the invention. Alternatively, the kernel size may be selected by the computer automatically, based on the type of data being analyzed. In the preferred embodiment, the kernel shape is selected by the computer automatically, based upon the data being analyzed, and the kernel size is selected by the user using a &#34;rubber band&#34; cursor to adjust the size of a default kernel which is superimposed over the image of data to be analyzed. The user then touches an edge of the kernel and &#34;drags&#34; it out to an appropriate dimension in some embodiments. In the case of rectangular kernels, the user may touch each of two opposing sides and drag each one individually out to the appropriate dimension so as to obtain the desired size and aspect ratio. This is done after dragging the kernel to a desired position on the image to be analyzed so as to surround the largest area of data shown on the image. 
     Block 70 represents the process of actually generating the background image using the kernel selected by the user. This process is best understood by reference to FIG. 5, which shows a typical kernel or neighborhood 72 of rectangular shape surrounding a pixel of interest 74. FIG. 6 shows the relationship of the kernel 72 to the overall image being processed. The pixel of interest 74 is any pixel within the area encompassed by the kernel 72. Although typically the pixel of interest is in the center of the kernel in the preferred embodiment, in alternative embodiments the pixel of interest 74 may be located anywhere within the boundaries of the kernel 72. The pixel of interest 74 is shown in the middle of a raster scan line 76 and is in the middle of a column of pixels 78. As is best seen in FIG. 6, the pixel of interest 74 is a single pixel in a line of pixels which together comprise the single raster scan line 76 of the image to be analyzed 80. The image 80 is comprised of 512 raster scan lines like the raster scan line 76 in some embodiments, and there are typically 512 pixels on each raster scan line. The size of the raster is not critical to the invention. The kernel 72 includes several pixels from the raster scan line 76 within its boundaries and includes several other raster scan lines both above and below the raster scan line 76 although these other raster scan lines are not shown in FIG. 6 to avoid unnecessary complexity. 
     Referring again to FIG. 5, the process of generating the background image is accomplished by comparing the value of the pixel 74 to the values of each of the other pixels in the kernel 72 and finding the minimum value pixel and substituting its value for the current value of the pixel 74. For example, assume that the pixel 74 has a value of 5 on a scale from 1 to 10. Assume also that the pixels 82, 84 and 86 in the raster scan line 88 have values of 7, 4 and 1, respectively. When the value of the pixel 74 is compared to the value of the pixel 82, the value of the pixel 74 will be less, and no substitution is made. When the value of the pixel 74 is compared to the value of the pixel 84, it will be found that the value of the pixel 84 is less than that of pixel 74, and a substitution will be made such that the value of pixel 74 is rewritten to be a 4. When pixel 74 is compared to pixel 86, it will be found that pixel 86 has a still smaller value of 1, and this value of 1 will be written to pixel 74. 
     This process continues until all the other pixels in the kernel 72 have been examined. Each time a new minimum is found, that value is used to update the value of the pixel 74. When this comparison process is completed for every pixel in the kernel 72, the final value of the pixel 74 will be established for use as one pixel in the background image. This process of comparing each pixel in the image 80 of FIG. 6 to all the pixels in a kernel comprised of a plurality of pixels adjacent to the pixel of interest is repeated for every pixel in the 512 by 512 pixel array of the image 80. When it has been completed, the complete background image has been generated. 
     The process symbolized by block 70 contemplates simultaneous processing for each pixel in the image 80 such that each pixel in the image is compared simultaneously with one other pixel in a kernel of pixels adjacent to the pixel of interest, and this process is repeated simultaneously for all pixels until all the pixels of interest have been compared to all the pixels and their respective kernels. This substantially increases the speed of processing to generate the background image. In some alternative embodiments, only a selected subset of the other pixels in each kernel will be sampled. In still other alternative embodiments, the process of comparing each pixel with the adjacent pixels in its kernel may be done serially such that each pixel of interest is compared simultaneously with all or some subset of all the pixels in the corresponding kernel such that the entire kernel is searched in a single machine cycle or however many machine cycles are necessary to make the comparison between one pixel and another. After this process is accomplished, another pixel of interest from the image to be analyzed is selected and simultaneous comparison is made of this pixel with all or some subset of the pixels in the kernel corresponding to that pixel. 
     Note that as the pixel of interest moves along a raster line, a corresponding kernel surrounding that pixel of interest is selected to keep the pixel of interest in the same relative location within the boundaries of the kernel. 
     Note also that the background image generation process must be performed using a copy of the image such that the updating of the values of each pixel of interest occurs in the copy. This is necessary because each pixel of interest is a neighboring pixel for the kernel corresponding to some other pixel of interest. Therefore, if the value of the pixel of interest in the image to be analyzed is updated prior to having processed all the other pixels in the image, there will be distortions and errors caused in the processing of other pixels whose kernels overlap the pixel which had its value changed. 
     After the background image is generated, it is subtracted on a pixel-by-pixel basis from the image to be analyzed, as symbolized by block 90 in FIG. 4. That is, the value of pixel 1 in raster scan line 1 of the background image is subtracted from the value of pixel 1 in raster scan line 1 of the image to be analyzed. 
     After this process is completed, the resultant image is displayed as a background-removed image on the monitor 54 in FIG. 3, as symbolized by block 92 in FIG. 4. 
     Referring to FIG. 7, there is shown symbolically the process by which whole image processing occurs in the computer apparatus according to the teachings of the invention. Simultaneous comparisons of each pixel in the image to be analyzed 80 to a single one of the adjacent pixels in the corresponding kernel is accomplished by the use of offset and compare commands to the image processing board set in the IBM AT™. For example, assume that the image to be analyzed 80 is comprised of 9 pixels labeled A through I. Assume also that the heavy line 94 defines the boundaries of a kernel for a pixel of interest E. The phrase &#34;pixel of interest&#34; as the phrase is used herein means the pixel being processed which has its value compared to the other pixel values in the kernel or neighborhood and which has its value replaced if the test of the comparison is satisfied, i.e., in the case of generation of the background image, if the neighboring pixel selected from the other pixels in the kernel has a value which is less than the value of the pixel of interest. 
     To further the illustration, assume also that the heavy line 96 defines the boundaries for a kernel for the pixel I. Similarly, a kernel comprised of the pixels D, E, G and H can be defined for the pixel H, and a kernel comprised of the pixels B, C, E and F can be defined for the pixel F. 
     Now assume that the first comparison in the process of generating the background image is to compare the values of the pixels of interest in all these kernels, i.e., the pixels at the lower right-hand corner of each kernel, to the values of the pixels at the upper left-hand corner of each kernel. Thus, in the case of kernel 94, the value of pixel E, the pixel of interest, is compared to the value of the pixel A. If the value of A is less than the value of E, then the value of A will be substituted for the value of E in a copy of the image 80. This copy is shown to the right and is labeled the &#34;offset&#34; image. Simultaneously, the value of pixel I is compared to the value of the pixel E. If the value of E is less than the value of I, then the value of I will be overwritten with the value of E in the offset image. 
     The offset image 98 is originally a copy of the image to be analyzed 80. To facilitate simultaneous comparison of some or all of the pixels in image 80 to one of the pixels in their corresponding kernels, the offset image 98 is used as follows. Imagine the offset image 98 is a transparency which can be placed over the image 80 and shifted about so as to align any pixel with any other pixel. For the first comparison in the hypothetical example, the pixel E will be compared with the pixel A. To implement this, the memory map of digital data representing the &#34;transparency&#34;, i.e., the offset image 98, is electronically placed over the memory map of digital data representing the original or &#34;acquired&#34; image 80 such that the offset image pixel A&#39; lies on top of the pixel E and the offset image pixel B&#39; lies on top of the pixel F in image 80. This aligns the offset image with the image 80 such that each pixel in the image 80 which has a pixel in the offset image 98 overlying it will be aligned with the pixel to which it is to be compared for the first round of comparisons. That is, the pixel E will be aligned with the pixel A&#39; and the pixel F will be aligned with the pixel B&#39;. Likewise, the pixel H will be aligned with the pixel D&#39; and the pixel I will be aligned with the pixel E&#39;. Examination of the kernels of image 80 indicates that for each of the overlapped pixels in image 80, i.e., the pixels of interest, the overlying pixel will be the pixel in the upper left-hand corner of the kernel in image 80 which corresponds to each pixel in image 80 which is overlapped. The offset for this first round of comparisons, then is &#34;1 pixel up, 1 pixel left&#34;. 
     The value of each pixel in image 80 which is overlapped is then compared to the value of the pixel which overlaps it in image 98. If any of the pixel values in image 98 are less than the pixel values in pixel 80 which they overlie, the minimum value is used to update the pixel in the offset image corresponding to the pixel in the image 80. The pixels in the offset image 98 which correspond to the pixels in the image 80 are those with the same &#34;relative address&#34;. To aid in understanding the meaning of the phrase &#34;relative address&#34; one can think of the labels A, B, etc. for the pixels in image 80 as their relative addresses or labels in memory. Thus, if the value of the pixel A, is less than the value of the pixel E, then the value of the pixel A&#39; is written into the memory location storing the value of the pixel E&#39;. The same process occurs for all other overlapped pixels. 
     Pixels in image 80 which are not overlapped, such as the pixels A, B, C, D and G, are compared to &#34;dummy&#34; pixels (constants or locations in the memory map which are loaded with constants) in the offset image 98 which have had their values artificially set to the maximum intensity level. This has the effect of causing the non-overlapped pixels in image 80 to never have their corresponding pixels in image 98 replaced with a minimum. The dummy pixels are labeled with Xs in image 98. 
     Thus, after one round of comparisons, each pixel in the image 80 will have been compared to one of the pixels in the corresponding kernel or a dummy pixel. To complete the process of generating the background image, a new offset or shift is performed to align the offset image with the image 80 such that the next pixel to be examined in each kernel overlies the pixel of interest in each kernel. Thus, for example, if the pixel E is to be compared next with the pixel D, then the offset image 98 is shifted such that the pixel D&#39; overlaps the pixel E, and the pixel E&#39; overlaps the pixel F. Then a new round of comparisons is made simultaneously to compare all overlapped pixels with the values of their overlapping pixels with appropriate updating where new minimums are found. 
     This offset/compare/update process occurs as many times as there are pixels in each kernel to be compared with the pixel of interest in each kernel. It is not necessary that all neighboring pixels in every kernel be compared with the pixel of interest to generate the background image. In fact, in some embodiments, only a sampling of the other pixels in each kernel is used to generate the background image. 
     The above-described process is graphically illustrated in the flow chart of FIG. 8. The process illustrated in FIG. 8 corresponds to the process symbolized by block 70 in FIG. 4. No further discussion of FIG. 8 is deemed necessary since it is self explanatory in light of the discussion above. Of course, those skilled in the art will appreciate that the background removal process can also be performed on a reverse video image by finding the maximum pixel value in each neighborhood and substituting that value for the value of the pixel of interest corresponding to that neighborhood. This technique is deemed sufficiently self-explanatory as to not warrant further discussion. 
     Referring to FIG. 9, there is shown a flow chart for the preferred embodiment of the process symbolized by block 68 in FIG. 4. Basically, the process represented by the flow chart of FIG. 9 represents an embodiment where the computer prompts the user to indicate what type of data is being analyzed and then selects the appropriate kernel shape based upon the user response. The user is then prompted to select an appropriate size for the kernel given the shape selected by the computer. 
     Referring to FIG. 10, there is shown an alternative embodiment of the process symbolized by block 68 in FIG. 4. The difference between the embodiment shown in FIG. 9 and FIG. 10 is that in the embodiment of FIG. 9, the computer selects the kernel shape based upon the user-supplied data regarding the type of application data that is to be analyzed. In FIG. 9, the user then selects the kernel size. In the embodiment of FIG. 10, once the user supplies data regarding what type of application the machine is to be used on, the user is then prompted to select the kernel shape as well as to select the kernel size. In yet another alternative embodiment, the computer may select both the shape and the size based on the application data supplied by the user. 
     FIG. 11 shows an example of two different kernel shapes for use on band type data such as is found in one-dimensional gel protein separations. The kernel shape indicated by the dashed line labeled 100 is not a good shape to use in this situation since it overlaps a portion of the dead space 102 which lies between band 104 and band 106. Since there is no valid background noise in the dead space 102, the kernel shape 100 will distort the background image, thereby creating errors. The kernel shape 108 is a better shape to use for this situation since it includes areas of the band 104 outside the data band of interest 110 but does not include any pixels in the dead space 102. 
     FIG. 12 illustrates a situation where differing kernel shapes are useful. The more or less circular data spots in FIG. 12 would be best quantized by the use of a circular kernel such as that shown in dashed lines at 112. However, certain types of data include vertical strips of noise in the image such as is shown at 114. In these situations, it is useful to do a two-stage background image generation process. The first stage of this process is to use a slender vertical kernel which is thinner than the thinnest noise streaks in the image. Such a kernel is shown at 116 in dashed lines. This kernel shape can effectively remove noise strips such as shown at 114. After a background image is generated using the kernel shape of 116, the second stage of the background image generation process is entered where the kernel shape changes to that shown at 112. Background image generation then proceeds operating upon the image generated using the kernel 112 on the acquired image. 
     Referring to FIG. 13, there is shown a flowchart for the preferred embodiment of a process according to the teachings of the invention. The first three stages in the process are symbolized by blocks 66, 68 and 70. These three stages are identical with the first three stages in the process symbolized by the block diagram of FIG. 4. Likewise, the last two stages, symbolized by blocks 90 and 92 are identical to the process stages symbolized by blocks 90 and 92 in FIG. 4. The difference between the process symbolized by FIG. 4 and the process symbolized by FIG. 13 lies in processed stages symbolized by blocks 120 and 122. 
     The process represented by block 120 is a series of steps to remove high frequency, large amplitude noise from the background image generated by the process represented by block 70. Such high frequency, large amplitude noise typically results from pinholes in the film, the penetration of gamma rays through the film or other such phenomena which cause large spikes in the intensity values of pixels. The details of this process will be given with reference to FIG. 14. 
     Referring to FIG. 14, there is shown a flowchart symbolizing the process steps implemented by block 120 in FIG. 13. The process represented by FIG. 14 essentially generates a maximum image from the background image generated by block 70 in FIG. 13. This is done using a smaller kernel than was used to generate the background image and by searching throughout the kernel to find the maximum pixel value and using that value to update the value of the pixel of interest within that kernel. This process is repeated for all or some subset of all of the pixels in the image to generate a maximum image. 
     The first step in generating a maximum image is symbolized by block 124 representing the process of making a copy of the background image generated in the process represented by block 70 in FIG. 13. 
     Next, a kernel is selected as symbolized by block 126. This kernel should be smaller than the kernel used to generate the background image and, generally, is very small in that it has an area which corresponds to the area of pinhole type defects. 
     Next, in block 128 the copy image is offset to align any selected pixel in each kernel with the corresponding pixel of interest in the background image. This process is identical to the process described with reference to FIGS. 6, 7 and 8 except that a much smaller kernel is used. 
     Block 130 represents the process of comparing each pair of aligned pixels to determine which one has the maximum value. This process is also identical to the process used in generating the background image, but the neighboring pixel in the kernel is checked to determine if its value is greater than the value of the pixel of interest rather than less than as in the case of generating the background image. 
     Block 132 represents the process of updating the pixel in the copy image corresponding to the pixel of interest in the background image for each aligned pixel pair where the aligned pixel in the copy image has a value which is greater than the aligned pixel of interest in the background image. This process also corresponds to the background image generation process described with reference to FIGS. 6, 7 and 8 and need not be further described here. 
     Next, in block 134, the copy image is offset to a different location to align another pixel in each kernel with the pixel of interest in the corresponding kernel in the background image. 
     Then the test of block 136 is performed to determine if all the other pixels in the kernel selected for generation of the maximum image from the background image have been checked against the pixel of interest in each kernel. If all the neighboring pixels each kernel have been checked, the test of block 136 causes branching to block 138 where exit to the next step in the process is performed based upon completion of the maximum image. The next step in the process would be block 122 in FIG. 13 in the preferred embodiment. However, in alternative embodiments, the next step in the process would be block 90 in FIG. 13 or some other image processing step. If the test of block 136 indicates that not all the pixels in the kernel have been checked for a value which exceeds the value of the pixel of interest, then a branch to block 130 is performed where each pair of aligned pixels in all the kernels are checked as previously described. Steps 130, 132, 134 and 136 are performed as many times as there are neighboring pixels to the pixel of interest in each kernel. These steps 130, 132 and 134 along with step 136 result in the simultaneous processing of the entire image. 
     Referring to FIG. 15, there is shown a flowchart of the process represented by block 122 in FIG. 13. This process smooths the background image by averaging all of the pixels in a kernel thereby removing high frequency, low amplitude noise. The process of FIG. 15 can be carried out using the background image generated by the process of block 70 as the starting image in some embodiments or upon the image generated by the process represented by block 120 in FIG. 13 as the starting image. That is, alternative embodiments to the process symbolized by the flowchart at FIG. 13 are to perform either the process represented by block 120 alone or the process represented by block 122 alone or both between the processes represented by blocks 70 and 90. Accordingly, the first stage in the process represented by FIG. 15 is symbolized by block 140 and making a copy of the starting image where the starting image may be the image generated by the process represented by block 70 in FIG. 13 or the image generated by the process represented by block 120. 
     Next, in block 142 a kernel is selected. In some embodiments, the computer may automatically select this kernel, and in other embodiments, the user may select a kernel. In either embodiment, the size and/or shape may be variable. The size of the kernel is generally substantially smaller than the kernel used to generate the background image as selected in block 68 of FIG. 13. 
     Block 144 represents the process of offsetting the copy image from the starting image to align one of the pixels in each kernel having the shape and size selected in block 142 with the corresponding pixel of interest in each kernel. This process is similar to the process represented by block 128 in FIG. 14 and the process discussed with reference to FIGS. 5-8. 
     Next, in block 146 the pair of aligned pixels are summed with the sum being used to update the pixels in the copy image which are aligned with pixels in the starting image. In some embodiments, pixels which have no overlying pixel in the copy image are summed with a constant. 
     In block 148 a process is carried out to offset the summed image generated by the process of block 146 to align another pixel from each kernel with the corresponding pixel of interest in each kernel. 
     The test of block 150 is to determine if all other pixels in each kernel have been aligned with and summed with the pixel of interest in each kernel with the total being used to update the value of the pixel and the summed image which corresponds to the pixel of interest in each kernel. In other words, steps 144, 146 and 148 are performed a number of times equal to the number of pixels in a kernel less one. This means that every other pixel in the kernel is aligned with the pixel of interest and summed therewith. If the test of block 150 determines that not all pixels in each kernel have been summed with the pixel of interest, branching back to the process represented by block 146 occurs. If all other pixels in a kernel have been summed, the process of block 152 is performed. In this process, each pixel in the summed image has its value divided by the number of pixels in each kernel. This generates a value for each pixel in the summed image which is the average value for all pixels and the kernel. This average value is then used to update the value of the pixel in the summed image. 
     The resultant image is used by block 90 in FIG. 13 as the background image which is subtracted from the acquired image to leave a background removed image which is displayed by the process of block 92 in FIG. 13. 
     Block 154 represents the process of repeating the smoothing or averaging process if desired or necessary. If not desired or not necessary, exit to block 90 in FIG. 13 is performed. 
     Referring to FIG. 16, there is shown a flow chart for a process of generating a percent change image useful in comparing two data images. Preferably, this process is carried out on a background removed image, but it may also be carried out between any two images. The process starts as symbolized in block 170 by subtracting the value of a pixel in image 1 from the value of a corresponding pixel in image 2. Typically, this process would be carried by subtracting pixel 1 of line 1 of image 1 from pixel 1 of line 1 of image 2 and storing the difference. However, the order in which the pixels are processed is immaterial as long as corresponding pixels, i.e., pixels having the same relative location in the image are subtracted. An additional feature in some embodiments including the preferred embodiment is to clip the noise from the percent change image by implementing a rule limiting the allowable differences. The rule is, if the sum of the values of the two pixels being compared is less than a noise clipping constant (fixed for any application but modifiable by the user), then the difference is set to 0. This rule has the effect of eliminating salt and pepper noise from the percent change image which can result when the differences between the images at substantially all the pixels is small. 
     Next, in step 172, the difference value is multiplied by a constant. This constant may, in some embodiments be fixed for all comparisons, but, in the preferred embodiment, the constant is selected by the computer based upon the application, but the user can override the selection and supply a new constant. 
     Step 174 represents the process of dividing the difference between the two pixel values by the minimum of the pixel values compared. This step generates a percentage change number indicating how much the intensity or value of the one of the pixels varies from the value of the other pixel. These percentage numbers vary from 255% to 1% because the maximum pixel intensity value is 255 and the minimum pixel intensity value is 1. 
     The significance of the constant is that it controls what percentages changes can be seen in the final percent change image and the intensities at which the percent change pixels are displayed. That is, the constant controls the range of percentage differences which can be seen by stepping up the percentage change numbers to larger numbers. However, the maximum intensity value which can be displayed is 255. Therefore, selection of larger constants can lead to clipping since the resulting percentage change numbers after multiplication can exceed 255. In the preferred embodiment, the constant ranges from +1 to +256, but in other embodiments, any number between 0 and any positive number could be used including fractional numbers. 
     In step 176, the result from step 174 is added to another constant to set the 0% change number equal to some reference intensity value. In the preferred embodiment, intensity values range from 1 to 255, and the constant used in step 176 is 127 such that the 0% change falls in the middle of the gray scale. 
     In step 178, the results from step 176 are clipped between 0 and 255 for purposes of using the results on a video display. The result is stored in a percent change image file or framestore. 
     Step 180 represents the process of repeating steps 170 through 178 for all pixels in both images to complete generation of the percent change image. The image may then be displayed for inspection and analysis. 
     Referring to FIGS. 17(a) through 17(b), there are shown a plurality of images which together comprise the components of a quad display and the quad display itself. The purpose of a quad display is to facilitate visual comparisons and analysis of data bearing images. The components of a quad display are the two compared images used to generate the percent change image, the percent change image itself, and a fourth image which is called the difference image. This difference image is at each pixel the difference between the two corresponding pixels in images 1 and 2, divided by 2 and added to 127. The percent change image is the image generated by the process of FIG. 16. The term &#34;corresponding pixels&#34; for the description of the difference image means the same thing as that term as used for the percent change image. 
     If the display hardware is large enough to display four complete images of the size of image 1, then all four images are simultaneously displayed as arranged in FIG. 17(e). If however, the display apparatus can display only one image having the number of pixels in image 1, then several alternative embodiments are possible. First, each image may be sampled to develop of subset of pixel for that image. Such sampling can include selecting every other pixel on every other line such that one-fourth of the total number of pixels remain to be displayed. In another alternative embodiment, a selection of one-quarter of each image is made, and that quarter of an image is displayed in the corresponding portion of the quad display of FIG. 17(e). The quarter of each image selected can be selected by the user or by the computer based upon the application or can be set to a default selection by the computer and modifiable by the user. The possibilities for which one-quarter to select are numerous and include one quadrant of each image, a horizontal strip amounting to one-fourth of the pixels or a vertical strip amounting to one-fourth of the pixels. 
     In the preferred embodiment, the user selects which quarter of each image to be displayed by manipulation of a &#34;linked&#34; cursor in a scout image. The scout image is, in the preferred embodiment, a 2 to 1 minification or subset of image 2. This minification is performed by selecting every other pixel of every other line and displaying the result as the scout image in the lower left quadrant of the display. The linked cursor is a fixed cursor encompassing one-fourth of the total area of the scout image. The user manipulates the position of this cursor by manipulation of a mouse, track ball or light pen etc. Also, the position of the cursor can be positioned by default in one of the four quadrants of the scout image and this position can then be modified by the user. As the user moves the cursor in the scout image, a corresponding cursor in each of the other three images moves synchronously to encompass the pixels corresponding to the pixels encompassed by the cursor in the scout image. When the user, selects a position for the cursor in the scout image as the final position, the corresponding pixels in the other three images are selected and displayed in the corresponding quadrants of the quad display shown in FIG. 17(e). Simultaneously, all the pixels in the difference image corresponding to the selected pixels in images 1, 2 are displayed in the lower left quadrant of the quad display. 
     In other embodiments, the quad display may be arranged differently. An example of such an alternative arrangement is as shown in FIG. 18. Any combination of hardware and software to implement this process and cursor manipulation will suffice for purposes of practicing the invention. The preferred embodiment of computer code which when combined with the hardware illustrated in FIG. 3 will implement the teachings of the invention is given in Appendix A. 
     Referring again to FIG. 17(e) there is shown the positions for four measurement cursor locations covering four sets of corresponding pixels. These cursor locations are shown at 182, 184, 186 and 188 in exemplary rectangular shape. The shape and size of the cursors can be selected by default by the computer and be modifiable by the user or can be selected outright by the user. 
     After the position, shape and size of the cursor is established by visually or automatically locating objects showing significant differences in the percent change image as indicated by a light (high intensity value) spot or a dark spot in a gray background, the computer calculates some quantity related to the values of the pixels inside the cursor. Examples of what these quantities can be are: 1) absorption meaning the sum of all the pixel values within the cursor in preselected units, which can be optical density, counts per minute, etc. for images 1 and 2 only; 2) the average value of all pixels in each cursor location for images 1 and 2; 3) square millimeters of optical density meaning absorption in optical density units divided by the number of pixels per square millimeter. Once these values are calculated for images 1 and 2, the values for the corresponding sets of pixels in the cursor locations in the percent change and difference images are automatically determined. That is, for the percent change image, the value returned for the cursor location is calculated according to the algorithm specified in FIG. 16 as modified by omission of multiplication by the constant and addition of the second constant. That is, the number returned for the cursor location in the percent change image is the value determined for the cursor in image 1 minus the value for the cursor in image 2 divided by the minimum value between these two numbers. 
     Likewise, the value returned for the cursor in the difference image is the value of the difference between the values returned for the cursor locations in images 1 and 2 divided by 2. 
     FIG. 19 clarifies how the cursor manipulated by the user in the 2 to 1 minified scout image (subset of image 2) corresponds to one-quarter of the pixels in the full size image 2 at the same relative location in the image. 
     Referring to FIG. 20, there is shown a diagram illustrating the process of alignment of images 1 and 2 which is necessary for the computation of values for the pixels in the cursors in the quad display. FIG. 20(a) represents the camera input video data that defines image 2. FIG. 20(b) illustrates an already acquired image 1 stored in a frame buffer. The corresponding pixels from these two images are combined according to the algorithm specified in FIG. 20(d) to generate the image of FIG. 20(c) on the display. The user then manipulates image 2 under the camera until the displayed image calculated per the equation of FIG. 20(d) shows minimal difference between image 1 and image 2. When this condition exists, the user so indicates, and the pixels of the image of FIG. 20(a) are captured in a frame buffer as the final image 2 for use in the processing described above to return the values for the selected cursor locations in the quad display shown in FIG. 17. 
     Although the invention has been described in terms of the preferred and alternative embodiments disclosed herein, those skilled in the art will appreciate numerous modifications which can be made without departing from the spirit and scope of the invention. All such modifications are intended to be included within the scope of the claims appended hereto. ##SPC1##