WO1990014639A1 - A method and an apparatus for identifying an object - Google Patents

A method and an apparatus for identifying an object Download PDF

Info

Publication number
WO1990014639A1
WO1990014639A1 PCT/US1990/003064 US9003064W WO9014639A1 WO 1990014639 A1 WO1990014639 A1 WO 1990014639A1 US 9003064 W US9003064 W US 9003064W WO 9014639 A1 WO9014639 A1 WO 9014639A1
Authority
WO
WIPO (PCT)
Prior art keywords
int
parameter
image
color
under examination
Prior art date
Application number
PCT/US1990/003064
Other languages
French (fr)
Inventor
Harvey Lee Kasdan
Original Assignee
International Remote Imaging Systems, 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 International Remote Imaging Systems, Inc. filed Critical International Remote Imaging Systems, Inc.
Publication of WO1990014639A1 publication Critical patent/WO1990014639A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/50Extraction of image or video features by performing operations within image blocks; by using histograms, e.g. histogram of oriented gradients [HoG]; by summing image-intensity values; Projection analysis
    • G06V10/507Summing image-intensity values; Histogram projection analysis

Definitions

  • the present invention contemplates a novel method and apparatus for identifying an object or to differentiate two objects based upon a new parameter which is termed "quantile".
  • each of the different color images is segmented, to form a plurality of pixels. Each pixel is then digitized. The boundary of each of the objects 12 and 14 is determined. This can be done, for example, by the method disclosed in U.S. Patent No. 4,538,299, which is incorporated herein by reference.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

The present invention relates to a method and an apparatus for identifying an object under examination. The object has a discernible boundary. An image of the object is first formed. The image is segmented to form a plurality of pixels (36). The boundary of the object under examination in the image is then detected (40). A measurement is made of a parameter of each pixel within the boundary detected. A histogram of the parameter with the number of pixels in the boundary is formed. A cumulative histogram of the parameter with the number of pixels in the boundary is formed (42). A relationship is then developed, from the cumulative histogram, between a value of the cumulative number of pixels and its associated parameter. The relationship associated with the object under examination is compared to a table (46) of predetermined relationships of other objects. The comparison then serves to identify the object under examination.

Description

A METHOD AND AN APPARATUS FOR IDENTIFYING AN OBJECT
Technical Field
The present invention relates to a method and an apparatus for identifying an object under
examination, wherein an image of the object is formed. More particularly, the present invention relates to a method and an apparatus for identifying an object based upon the object having a discernable boundary and a novel feature termed "quantile". Background Of The Invention
Methods and apparatuses for identifying an object are well-known in the art. The art of
identifying biological samples is replete with various techniques for identifying the type of biological samples under examination. See, for example, U.S. Patent No. 4,175,860. Formation of histograms of various parameters are also known. See for example U. S. Patent No. 3,851,156.
Heretofore, one of the known methods for identifying an object is to use the size of the object. Other parameters of the object which can be used to identify an object include color, internal optical density, and average intensity within the boundary of the object.
In some cases, however, it is not possible to identify an object uniquely or to differentiate two objects if certain of their parameters yield the same result. Thus, for example, if two objects have the same size and have the same internal optical density and have the same average visible light intensity, then it is not possible to identify one of the objects or to differentiate these two objects, based upon these parameters. In addition, some of these parameters are computationally intensive requiring considerable amount of time or computer resources. Thus, the present invention contemplates a novel method and apparatus for identifying an object or to differentiate two objects based upon a new parameter which is termed "quantile".
Summary Of The Invention
In the present invention, a method of
identifying an object, under examination, which has a discernible boundary is disclosed. The method comprises the steps of forming an image of the object. The image is segmented to form a plurality of pixels. The boundary of the object under
examination in the image is then detected. A
measurement is made of a parameter of each pixel within the boundary detected. A histogram of the parameter of each pixel is formed with the number of pixels within the boundary. A cumulative histogram of the parameter is then formed. A relationship is then developed from the cumulative histogram, between a value of the cumulative number of pixels and its associated parameter. The relationship developed is associated with the object. The object is identified based upon this relationship.
The present invention also contemplates an apparatus to carry out the foregoing method.
Brief Description Of The Drawings
Fig. 1 is a schematic graphical illustration of two objects "a" and "b" which have the same size and shape and the same average intensity but which are different. Fig. 2 is a graph showing a histogram of
intensity of light versus the number of pixels in the boundary detected.
Fig. 3 is a graph showing a cumulative histogram of intensity of light versus the cumulative number of pixels in the boundary detected, and with the
quantile feature determined for each object.
Fig. 4 is a table of pre-determined
relationships or quantiles of various known objects.
Fig. 5 is a block diagram of an apparatus suitable for carrying out the method of the present invention.
Detailed Description Of The Drawings
Referring to Fig. 1, there is shown a schematic diagram of an image 10 of two objects: object "A" 12 and "B" 14. Although the description set forth hereinafter is with reference to the method of the present invention to distinguish object "A" from object "B", it can be seen that the method of the present invention is equally applicable to
identifying a single object which is under
examination.
Each of the objects 12 and 14 has a discernible boundary 18 and 20, respectively. As shown in Fig. 1, each of the objects 12 and 14 has the same size and shape. Although for illustration purposes, objects 12 and 14 are shown as having the same size and shape, it is not necessary to the practice of the present invention. The purpose of illustrating the method of the present invention using objects 12 and 14 having the same size and shape is to show how the method of the present invention can be used to distinguish objects 12 and 14 under examination when other parameters, such as size and shape, cannot be used.
Objects 12 and 14, of course, represent images of real objects, such as cells, genes or other biological or non-biological objects. In the method of the present invention, an image 10 is taken of the objects 12 and 14. The image 10 can be formed by using an electronic video camera, such as a CCD (the specific details of an apparatus suitable to carry out the method of the present invention will be discussed hereinafter). The image 10 is then
filtered in accordance with the different color filters that can be used to distinguish the type of color of the object. Each of the different color images is segmented, to form a plurality of pixels. Each pixel is then digitized. The boundary of each of the objects 12 and 14 is determined. This can be done, for example, by the method disclosed in U.S. Patent No. 4,538,299, which is incorporated herein by reference.
Once the boundary of each of the objects 12 and 14 is determined, one of the parameters of each pixel within the boundary is measured. One parameter can be the intensity of visible light. Thus, the
intensity of visible light at each pixel, positioned within the boundary positions 18 and 20, is measured. Thereafter, a histogram of intensity versus the number of pixels is formed. Referring to Figure 2, there is shown two histograms. The histogram of Figure 2a corresponds to the object 12 whereas the histogram of Figure 2b corresponds to the object 14. As can be seen from Figure 1, object 12 has a
substantially uniform intensity (the dark image indicates brightness) throughout the entire region within the boundary 18. Thus, the histogram, as shown in Figure 2a, shows substantially N1 pixels each having an intensity of I1. In contrast, object 14 has a small area 16 that has greater intensity than the uniform intensity I1 of object 12. The histogram, as shown in Figure 2b, shows that N2 number of pixels in the spot 16 have substantially an intensity value of I2, with N1 > N2 and I2 > I1.
Once the histogram of each object 12 and 14 has been formed, a cumulative histogram is then
developed. The cumulative histogram is formed by summing the number of pixels that has at least a certain intensity value. If N = f (I), where N is the number of pixels having an intensity level I, then Cum N = F(I) where Cum N is the cumulative number of pixels having an intensity level I , and where
Figure imgf000007_0001
The cumulative histograms of the histograms shown in Figure 2a and 2b, are shown in Figure 3. The
particular parameter value, such as intensity of visible light, associated with a cumulative fraction of all pixels, is termed a quantile. Thus, from
Figure 3, the 50th quantile is I3 for object 12 and I4 for object 14. It should be noted that unlike
conventional percentile representations, which are even increments of discrete percents, quantile representations are not limited to discrete, even increments. Thus, an object may be identified by its ith, jth, or kth quantile, where i, j, and k do not necessarily occur in discrete, even increments.
Since the quantile relationship, shown in Fig.
3, associated with each objects 12 and 14 is
different, the objects 12 and 14 can be distinguished from one another, based upon this developed quantile relationship. Alternatively, to uniquely identify a particular object, such as object 14, the quantile relationship associated with the object 14 can be compared to a table of pre-determined relationship of other known objects whose quantile relationships have been pre-determined. The table of pre-determined quantile relationships of other known objects can be based upon experimental results. The comparison of the quantile relationship to the table of pre- determined quantile relationships would then serve to identify uniquely the type of the object that is under examination.
For the purpose of distinguishing the objects 12 and 14 from one another or to identify an unknown object by comparing the quantile relationship, it is not necessary to compare each ordered pair of numbers (Q,I) (where Q is the quantile number and I is intensity associated therewith), to each other (in the case of two particles) or to a table (in the case of attempting to uniquely identify an object). One method is to compare the associated intensity value of the object under examination at a particular quantile number to the associated intensity value of another object at the same quantile number, or to a table of associated intensity values of identified objects at the same quantile number. Thus, as shown in Figure 3, the 50th quantile for the object 12 has an intensity value of I3 and the same 50th quantile for the object 14 has the value I4. These intensity values can be compared to each other to distinguish one object from another. Alternatively, the 50th quantile of one of the objects can be compared to a table of intensity values of identified particles whose 50th quantile have been pre-determined. See Figure 4. By comparing the 50th quantile of the unknown object to the table, the unknown object can be identified.
Of course, if we are dealing with objects of biological particles having statistical variations in intensity, it may not be possible to determine precisely the intensity associated with a particular quantile for the same particle under all cases of examination. Thus, a table relationship may
encompass a range of values of intensity for a particular quantile such that the object having that range of intensity values, can be uniquely
identified. The range of values can be developed from representative samples identified from
experimental results.
The foregoing example illustrates the method of the present invention wherein the average intensity of the two objects 12 and 14 are indistinguishable. However, using the method of the present invention with the intensity of visible light and the
cumulative histogram developed therefor, the objects can be distinguished from one another. Parameters, other than intensity of light can also be used to distinguish the particles. Thus, another parameter suitable for use is differentiating by color
representation. Color can be represented by three primary colors of red, blue, and green.
Alternatively, color can also be represented by hue, intensity, and saturation.
In one particular embodiment, the difference in color representation of the primary colors is used. The parameter of log(a) - log(b) may be employed, where a, and b are intensities of red and blue primary colors, respectively. Other possible
combinations include: a being blue and b being green; or a being green and b being blue. An apparatus 30 suitable for carrying out the method of the present invention is shown in Fig. 5. The apparatus 30 comprises a microscope 32, which is focused on an examination area 33. The examination area can be a microscopic slide or a flow cell such as that disclosed in U.S. Patent No. 4,338,024. A camera 34 is attached to the microscope 32 and is adapted to image a portion of a suspension having a particle therein. The camera 34 is preferably of a raster scan type and may be a CCD camera model
TC1160BD manufactured by RCA. The camera 34 can form an electrical image of the field of view as seen through the microscope 32. Further, the camera 34 segments the image into a plurality of pixels, with an electrical signal corresponding to each pixel of the image. The camera 34 also outputs a plurality of signals (3) one for each of the colors (Red, Blue, and Green).
Each of the signals from the camera 34 is supplied to a digitizer 36, which digitizes the image intensity of each pixel into an electrical signal representing the grey scale value. Preferably, the pixel is digitized into a gray scale value between 0 and 256.
From the digitizer, the digitized gray scale value is supplied to a memory 38, where the values are stored. The memory 36 can be a RAM. A boundary detector 40, such as that disclosed in U.S. Patent No. 4,538,299 operates on the image in the memory 38 and detects the boundary of the image detected. The result is also stored in the memory 38.
From the memory 38, a computer 42 operates on the image and measures a parameter, such as intensity of light, of each pixel within the boundary detected. The computer 42 then establishes a histogram of those measurements. From the histogram developed, the computer 42 forms a cumulative histogram. Then, the computer 42 develops a relationship between a value of the cumulative pixel number and its associated intensity. As previously discussed, this can take the form of a particular quantile, e.g. 50th
quantile.
In the event the apparatus 30 seeks to determine the identity of a single particle under examination, then the particular quantile value derived by the computer 42 is compared to the table of stored values 46 of previously identified particles. The table 46 can be a ROM or another memory. The result can be displayed on the display 44.
In the event the apparatus 30 seeks to
differentiate a plurality of objects under
examination, then a histogram is developed for the same parameter for each of the pixels in the boundary of each of the images of the different objects. The cumulative histogram is developed from each of the histograms. The same quantile is then determined for each of the cumulative histograms. From the
quantile, the particles under examination can be differentiated from one another. The result can be displayed on the display 44.
The computer 42 carries out its tasks in
accordance with a computer program. A copy of a program written in the C language for execution under the MS-DOS operating system is attached herewith as exhibit A. CCA.H Wednesday, August 24, 1988 Page 1
1 /* cca.h() Block Diagram Software cca.h()
2 **
3 ** Programmer: H. L. Kasdan
4 **
5 ** Copyright : 1987 by Harvey L. Kasdan
6 **
7 ***************************************************************************
8 **
9 ** NAME
10 ** cca.h - chain code analysis header file
11 **
12 ** SYNOPSIS
13 **
14 ** DESCRIPTION
15 **
16 ** SEE ALSO
17 **
18 ** DIAGNOSTICS
19 **
20 ** BUGS
21 **
22 ** REVISION HISTORY
23 **
24 ***************************************************************************
25 */
26 /*
27 ***************************************************************************
28 ** DEFINES
29 ***************************************************************************
30 */
31 #define MAXX 60
32 #define MAXY 60
33 /*
34 ***************************************************************************
35 ** STRUCTURE DEFINITION
36 ***************************************************************************
37 */
38 struct ccdef {
39 char ccang; /* angular position of next point 0 - 7 */
40 int x; /* x-position of current point */
41 int y; /* y-position of current point */
42 }; /* chain code definition structure */
43
44 typedef char n8group[9]; /* 8-group of characters (pixels) */
45
46 typedef struct {
47 int px; /* x-coordinate */
48 int py; /* y-coordinate */
49 } point; /* point coordinates */
50
51 typedef point n8points[9]; /* array of central point and 8 neighbors */
52
53 /*
54 ***************************************************************************
55 ** SUBROUTINE DECLARATIONS
EXHIBIT A CCA.H Wednesday, August 24, 1988 Page 2
56 ****************************************************************************************************
57 */
58 int ccabox0();
59 int ccabrk0();
60 intccaconsc();
61 int ccaconss();
62 intccadcon0();
63 int ccadetp0()
64 int ccadilate();
65 int ccadiss1();
66 int ceadisst();
67 intccaenter();
68 int ccaerod1();
69 int ccaerode();
70 int ccafilin();
71 int ccafili1();
72 int ccafili2();
73 voi o ccafi l1();
74 int ccan8bf0( );
75 int ccan8fo1();
76
NDAP.H Wednesday, August 24, 1988 Page 3
1 /* ndap.h() Block Diagram Software ndap.h()
2 **
3 ** Programmer: H. L. Kasdan
4 **
5 ** Copyright : (C) 1988 by
6 ** International Remote Imaging Systems Inc.
7 **
8 ***************************************************************************
9 **
10 ** NAME
11 ** ndap.h - NIH data analysis header file
12 **
13 ** SYNOPSIS
14 **
15 ** DESCRIPTION
16 **
17 ** SEE ALSO
18 **
19 ** DIAGNOSTICS
20 **
21 ** BUGS
22 **
23 ** REVISION HISTORY
24 **
25 ***************************************************************************
26 */
27 /*
28 ***************************************************************************
29 ** DEFINES
30 ***************************************************************************
31 */
32 #define CAXHAX 48 /* cell array x-maximum */
33 ftdefine CAYHAX 48 /* cell array y-maximum */
34 /*
35 ***************************************************************************
36 ** STRUCTURE DEFINITION
37 ***************************************************************************
38 */
39 struct imageO {
40 char fname[14]; /* cell data file name and extension */
41 int cellno; /* cell number */
42 long int riod; /* red iod */
43 long int giod; /* green iod */
44 long int biod; /* blue iod */
45 long int riot; /* red iot */
46 long int giot; /* green iot */
47 long int biot; /* blue iot */
48 int carea; /* cell area */
49 int thresh; /* edge trace threshold */
50 char ctype[12]; /* cell type */
51 int cx0; /* cell trace starting x-position */
52 int cy0; /* cell trace starting y-position */
53 int cxmϊn; /* cell trace minimum x-position */
54 int cymin; /* cell trace minimun y-position */
55 int cxmax; /* cell trace maximum x-position */
EXH IBIT A NDAP.H Wednesday, August 24, 1988 Page 4
56 int cymax; /* cell trace maximun y-position */
57 int cpie; /* cell points in edge */
58 char ccc[256]; /* cell chain code */
59 unsigned char crimg[CAYHAX] [CAXHAX]; /* cell red image */
60 unsigned char cgimg [CAYHAX] [CAXHAX]; /* cell green image */
61 unsigned char cbimg[CAYHAX] [CAXHAX]; /* cell blue image */
62 unsigned char cnrimg[CAYHAX] [CAXHAX]; /* cell normalized red image */
63 unsigned char cngimg[CAYHAX] [CAXHAX]; /* cell normalized green image */
64 unsigned char cnbimg[CAYHAX] [CAXHAX]; /* cell normalized blue image */
65 int Igmlr[CAYHAX] [CAXHAX] ; /* log green minus log red image */
66 int Ibmlg[CAYHAX] [CAXHAX]; /* log blue minus log green image */
67 int Irmlb[CAYHAX] [CAXHAX]; /* log red minus log blue image */
68 int qclgmlr[50]; /* log green minus log red cell quantiles */
69 int qcibmlg[50]; /* log blue minus log green cell quantiles */
70 int qclrmlb[50]; /* log red minus log blue cell quantiles */
71 int mclgmlr; /* log green minus log red cell pixel mean */
72 int mcIbmlg; /* log blue minus log green cell pixel mean */
73 int mclrmlb; /* log red minus log blue cell pixel mean */
74 int sdclgmlr; /* log green minus log red cell pixel std dev */
75 int sdclbmlg; /* log blue minus log green cell pixel std dev */
76 int sdclrmlb; /* log red minus log blue cell pixel std dev */
77 char ccimg[CAYHAX] [CAXHAX]; /* cell chain code image */
78 struct ccdef cccimg[256]; /* cell chain code struct */
79 }; /* imageO - cell image data structure */
80 struct hist0 {
81 unsigned int rhi st0 [256] ; /* red image histogram */
82 unsigned int ghi st0 [256] ; /* green image histogram */
83 unsigned int bhi st0 [256] ; /* blue image histogram */
84 unsigned int rih is t0 [256] /* red image interior histogram */
85 unsigned int gih ist0 [256] /* green image interior histogram */
86 unsigned int bih is t0 [256] /* blue image interior histogram */
87 unsigned int reh is t0 [256] /* red image exterior histogram */
88 unsigned int geh ist0 [256] /* green image exterior histogram */
89 unsigned int beh is t0 [256] /* blue image exterior histogram */
90 }; /* hist0 - cell image data histogram structure */
91 struct chist0 {
92 unsigned int crhist0[256]; /* red image cum histogram */
93 unsigned int cghist0 [256] ; /* green image cum histogram */
94 unsigned int cbhist0[256]; /* blue image cum histogram */
95 unsigned int crihist0[256]; /* red image interior cum histogram */
96 unsigned int cgihist0[256]; /* green image interior cum histogram */
97 unsigned int cbihist0[256]; /* blue image interior cum histogram */
98 unsigned int crehist0[256] /* red image exterior cum histogram */
99 unsigned int cgehist0[256] /* green image exterior cum histogram */
100 unsigned int cbehist0[256] /* blue image exterior cum histogram */
101 }; /* chist0 cell image data histogram structure */
102 struct qt10 {
103 unsigned int qr0[50]; /* red image quantiles */
104 unsigned int qg0[50]; /* green image quantiles */
105 unsigned int qb0[50]; /* blue image quantiles */
106 unsigned int qri0[50]; /* red image interior quantiles */
107 unsigned int qgi0[50]; /* green image interior quantiles */
108 unsigned int qbi0[50]; /* blue image interior quantiles */
109 unsigned int qre0[50]; /* red image exterior quantiles */
110 unsigned int qge0[50]; /* green image exterior quantiles */
EXHIBIT A NDAP.H Wednesday, August 24, 1988 Page 5
111 unsigned intqbe0[50] ; /* blue image exterior quantiles
112 unsigned int mr0; /* red image mean */
113 unsigned intmg0; /* green image mean */
114 unsigned intmb0; /* blue image mean */
115 unsigned intmri0; /* red image interior mean */
116 unsigned int mgi0; /* green image interior mean */
117 unsigned intmbi0; /* blue image interior mean */
118 unsigned intmre0; /* red image exterior mean */
119 unsigned intmge0; /* green image exterior mean */
120 unsigned intmbe0; /* blue image exterior mean */
121 unsigned int sdr0; /* red image std deviation */
122 unsigned int sdg0; /* green image std deviation */
123 unsigned intsdb0; /* blue image std deviation */
124 unsigned int sdri0; /* red image interior std deviation */
125 unsigned intsdgi0; /* green image interior std deviation */
126 unsigned intsdbi0; /* blue image interior std deviation */
127 unsigned int sdre0; /* red image exterior std deviation */
128 unsigned intsdge0; /* green image exterior std deviation */
129 unsigned int sdbe0; /* blue image exterior std deviation */
130 }; /* qt10 - cell image data quantile structure */
131 /*
132 ***************************************************************************
133 ** SUBROUTINE DECLARATIONS
134 ***************************************************************************
135 */
EXHIBIT A NDAPHLQO.C Tuesday, August 23, 1988 Page 41
1 /* ndapmlq0() Analysis Software ndapmlq0()
2 **
3 ** Programmer: H. L. Kasdan
4 **
5 ** Copyright : 1988 by
6 ** International Remote Imaging Systems, Inc.
7 **
g ***************************************************************************
9 **
1 1C0 ** NAME
1111 ** ndapmlq0 - produce log image quantiles and statistics routine 12 **
13 ** SYNOPSIS
14 ** #include <stdio.h>
15 ** #include <string.h>
16 ** #include "cca.h"
17 ** #include "ndap.h"
18 ** int ndapmlq0( struct image0 *p_image0 )
19 ** struct image0 *p image0; pointer to image0 data structure
20 **
21 ** DESCRIPTION
22 ** Routine generates quantiles of log difference cell
23 ** image data using data from image0 data structure.
24 ** - Modified heap-sort algorithm is used to order pixel data.
25 **
26 ** SEE ALSO
27 **
28 ** DIAGNOSTICS
29 **
30 ** BUGS
31 **
32 ** REVISION HISTORY
33 **
34 ***************************************************************************
35 */
36 #include <math.h>
37 #include <stdio.h>
38 #include <string.h>
39 #include "cca.h"
40 #include "ndap.h"
41 #define BNPCT 95
42 #define BOFF 28
43 #define GNPCT 95
44 #define GOFF 21
45 #define FALSE 0
46 #define NVALUE 200 /* normalized maximum image value */
47 #define PHAXX 46
48 #define PMAXY 46
49 #define PHINX 2
50 #define PMINY 2
51 #define RNPCT 95
52 #define ROFF 25
53 #define TRUE 1
54
55 void indexx();
EXHIBIT A NDAPMLQO.C Tuesday, August 23, 1988 Page 42
56 void ndapqnt0();
57 void ndapmsd0();
58
59 int ndapmtq0( p_image0 )
60 struct image0 *p_ image0; /* pointer to image0 data structure */
61 {
62 /*
53 ************************************************************************** 64 ** GLOBAL STORAGE
55 **************************************************************************
66 */
67 extern int ltab0[256]; /* precomputed log table values */
68
69 /*
70 **************************************************************************
71 ** LOCAL STORAGE
72 **************************************************************************
73 */
74 int bnvalue /* blue pixel normalizing value */
75 int err = 0; /* error return */
76 int i; ' /* generix index */
77 int indx[CAXMAX * CAYMAX + 1]; /* interior pixel index array */
78 int gnvalue; /* green pixel normalizing value */ 79 long int Iptmp. /* temporary pixel value */
80 int n; /* number of interior pixels - length of index
81 array */
82 int rnvalue; /* red pixel normalizing value */
83 int x; /* x-coordinate value */
84 int y; /* y-coordinate value */
85 /*
g5 **************************************************************************
87 ** Generate Index Array
88 ************************************************************************** 89 */
90 n = 0; /* index count */
91
92 for ( y * 0; y < CAYHAX; y++ )
93 {
94 for ( x = 0; x < CAXHAX; x++ )
95 {
96 if <(p_image0->ccimg[y] [x] == 'x' ) | |
97 ((<p image0->ccimg[y] [x] >= '0' ) && <p-image0->ccimg[y] [x] < '8' ))))
98 {
99 indx[++n] = (y * CAXHAX) + x;
100 } /* end - if (... || (...) && (...) ) */
101
102 } /* end - for ( x = 0; x < CAXHAX; x++ ) */
103 } /* end - for ( y = 0; y < CAYMAX; y++ ) */
104 /*
105 ** Igalr Cell Image
106 */
107 indexx(n, &p_image0->lgmlr[0] [0], indx); /* order index array for Igmlr */
108 ndapqnt0(n, &p_image0->lgmlr[0] [0], indx, &p_image0->qclgmlr[0] );
109 ndapmsd0(n, &ρ_image0->lgmlr[0] [0], indx,
110 ip_image0->mclgmlr, &p_image0->sdclgmlr);
EXHIBIT A NDAPHLQO.C Tuesday, August 23, 1988 Page 43
111
112 /*
113 ** Ibmlg Cell Image
114 */
115 indexx(n, &p_image0->lbmlg[0] [0], indx); /* order index array for Ibmlg */
116 ndapqnt0(n, &p_image0->lbmlg[0] [0], indx, &p_image0->qclbmlg[0]);
117 ndapmsd0(n, &p_image0->Ibmlg[0] [0], indx,
118 &p image0->mclbmlg, &p image0->sdclbmlg);
119
120 /*
121 ** Irmlb Cell Image
122 */
123 indexx(n, &p_image0->lrmlb[0] [0] , indx); /* order index array for I rmlb */ 124 ndapqnt0(n, &p_image0->lrmlb[0] [0] , indx, &p_image0->qclrmlb[0] ;
125 ndapmsd0(n, &p_image0->lrmlb[0] [0] , indx,
126 &p image0->mclrmlb, &p image0->sdclrmlb);
127
128
129 return(err);
130
131 } /* end - int ndapmlq0(char *cs) */
132
133 /* indexx() Analysis Software indexx()
134 **
135 ** Programmer: H. L. Kasdan
136 **
137 ** Copyright : 1988 by
138 ** International Remote Imaging Systems, Inc.
139 **
140 ***************************************************************************
141 **
142 ** NAME
143 ** indexx - order index array for log image data
144 **
145 ** SYNOPSIS
146 ** iinclude <stdio.h>
147 ** #include <string.h>
148 ** #include "cca.h"
149 ** #include "ndap.h"
150 ** void indexx( int n, int arrin[], int indx[])
151 ** int n; number of elements to be ordered
152 ** int arrin[]; array containing elements to
153 ** be ordered
154 ** int indx[]; array containing indecies of
155 ** elements in arrin that will
156 ** be ordered. This index array
157 ** will be ordered in place.
158 **
159 ** DESCRIPTION
160 ** Routine orders elements in array arrin specified in
161 ** index array, indx.
162
163 SEE ALSO
164 **
165 DIAGNOSTICS
EXHIBIT A NDAPMLQO.C Tuesday, August 23, 1988 Page 44
166 **
167 ** BUGS
168 **
169 ** REVISION HISTORY
170 **
171 ***************************************************************************
172 */
173 void indexx( n, arrin, indx)
174 int n; /* nurber of elements to be ordered */
175 int arrint[]; /* array containing elements to
176 be ordered */
177 int indx[]; /* array containing indecies of
178 elements in arrin that will
179 be ordered. This index array
180 will be ordered in place. */
181
182 {
183 /*
184 *************************************************************************
185 ** LOCAL STORAGE
186 *************************************************************************
187 */
188 int i;
189 int indxt;
190 int ir;
191 int j;
192 int I;
193 int q;
194 /*
195 ** Do heapsort
196 */
197 I = (n » 1) + 1;
198 ir = n;
199
200 for (;;)
201 {
202
203 if (1 > 1)
204 q - arrin[(indxt = indx[--]])];
205 else
206 {
207 q = arrin[(indxt = indx[ir])];
208 indx[ir] = indx[1];
209 if (--ir == 1)
210 {
211 indxt[1] = indxt;
212 return;
213 } /* end - if (--ir == 1) */
214 > /* end - else (1 > 1) */
215
216 i = 1;
217 i = 1 « 1;
218
219 while (j <= ir)
220 {
EXHI B IT A NDAPMLQO.C Tuesday, August 23, 1988 Page 45
221 if (j < i r && arrin[indx [j] ] < arrin [indx[j + 1] ] ) j++;
222 i f (q < arrin[indx [j] ] )
223 C
224 indx [i] = indx[j] ;
225 j += (i=j);
226 } /* end - if (q < arrin[indx[j]]) */
227 else j = ir + 1;
228 } /* end - while (j <= ir) */
229
230 indx[i] = indxt;
231
232 } /* end - for (;;) */
233
234 } /* end - void indexx( int n, int arrin[], int indx[]) */
235
236 /* ndapqnt0() Analysis Software ndapqnt0()
237 **
238 ** Programmer: H. L. Kasdan
239 **
240 ** Copyright : 1988 by
241 ** International Remote Imaging Systems, Inc.
242 **
243 *************************************************************************** 244 **
245 ** NAME
246 ** ndapqnt0 - order index array for log image data
247 **
248 ** SYNOPSIS
249 ** #include <stdio.h>
250 ** #include <string.h>
251 ** #include "cca.h"
252 ** #include "ndap.h"
253 ** void ndapqnt0( int n, int arrin[], int indx[], int quant [50]) 254 ** int n; number of elements to be ordered
255 ** int arrin[]; array containing elements to
256 ** be ordered
257 ** int indx[]; array containing indecies of
258 ** elements in arrin that will 259 ** be ordered. This index array
260 ** will be ordered in place.
261 ** int quant [50]; array in which 50 quantiles
262 ** will be returned
263 **
264 ** DESCRIPTION
265 ** Routine orders determines quantiles from elements in array
266 ** arrin according to index array, indx.
267 **
268 ** SEE ALSO
269 **
270 ** DIAGNOSTICS
271 **
272 ** BUGS
273 **
274 ** REVISION HISTORY
275 **
EXHIBIT A NDAPMLQO.C Tuesday, August 23, 1988 Page 46
275 ***************************************************************************
277 */
278 void ndapqnt0( n, arrin, indx, quant)
279 int n; /* number of elements to be ordered */
280 int arrin[]; /* array containing elements to
281 be ordered */
282 int indx[]; /* array containing indecies of
283 elements in arrin that will
284 be ordered. This index array
285 will be ordered in place. */
286 int quant[50]; /* array in which 50 quantiles
287 will be returned */
288
289
290 {
291 /*
292 **************************************************************************
293 ** LOCAL STORAGE
294 **************************************************************************
295 */
296 int i;
297 int j0 = 0; /* quantile index */
298 int jnext; /* target quantile index */
299 I*
300 ** Generate Quantiles
301 */
302 quant [0] = arrin[indx[1]] ;
303 j0 = 1;
304 for ( i = 1; ( i <= n) && (j0 < 50); i++)
305 {
306 jnext = ( i * 50) / n;
307 whi le (((jnext - j0) > 0) && (j0 <50))
308 {
309 quant [j0++] = arrin[indx[i] ] ;
310 } /* end - whi le ((jnext - j0++) > 1 ) */
311
312 } /* end - for ( i = 1 ; i <= n; i++) */
313 } /* end - void ndapqnt0( int n, int arrin[], int indx[]) */
314
315
316 /* ndapmsd0() Analysis Software ndapmsd0()
317 **
318 ** Programmer: H.L. Kasdan
319 **
320 ** Copyright : 1988 by
321 ** International Remote Imaging Systems, Inc.
322 **
323 *************************************************************************** 324 **
325 ** NAME
326 ** ndapmsd0 - order index array for log image data
327 **
328 ** SYNOPSIS
329 ** #include <math.h>
330 ** #include <stdio.h>
EXHIBIT A NDAPMLQO.C Tuesday, August 23, 1988 Page 47
331 ** #include <string.h>
332 ** #include "cca.h"
333 ** #include "ndap.h"
334 ** void ndapmsd0( int n, int arrin[], int indx[], int *mean,
335 int *sdev
336 ** int n; number of elements to be ordered
337 ** int arrin[]; array containing elements to
338 ** be ordered
339 ** int indx[]; array containing indecies of
340 ** elements in arrin that will
341 ** be used.
342 ** int *mean; mean value of specified
343 ** elements
344 ** int *sdev; standard deviation of
345 ** specified elements
346 **
347 ** DESCRIPTION
348 ** Routine orders computes mean and standard deviation of
349 ** elements in array arrin specified in index array, indx.
350 **
351 ** SEE ALSO '
352 **
353 ** DIAGNOSTICS
354 **
355 ** BUGS
356 **
357 ** REVISION HISTORY
358 **
359 ***************************************************************************
360 */
361 void ndapmsd0( n, arrin, indx, mean, sdev)
362 int n; /* number of elements to be ordered */
363 int arrin[]; /* array containing elements to
364 be ordered */
365 int indx[]; /* array containing indecies of
366 elements in arrin that will
367 be ordered. This index array
368 will be ordered in place. */
369 int *mean; /* mean value of specified
370 elements */
371 int *sdev; /* standard deviation of
372 specified elements */
373
374
375 {
376 /*
377 **************************************************************************
378 ** LOCAL STORAGE
379 **************************************************************************
380 */
381 double dmean; /* running first moment */
382 double dpixel; /* temp pixel value */
383 double dsdev; /* double std dev */
384 double dsm; /* running second moment */
385 int {;
EXHIBIT A NDAPMLQO.C Tuesday, August 23, 1988 Page 48
386 /*
387 ** Compute Moments
388 */
389 dmean = 0.;
390 dsm = 0.;
391 for (i = 1; (i <= n); i++)
392 {
393 dpixel = (double)arrin[indx[i]];
394 dmean += dpixel;
395 dsm += dpixel * dpixel;
396 } /* end - for (i = 1; i <= n; i++) */
397 dmean /= (double)n;
398 *mean = (int)dmean;
399 dsm /= (double)n;
400 dsdev = dsm - (dmean * dmean);
401 dsdev = (dsdev >= (double)0.) ? dsdev : (double)0.;
402 dsdev = sqrt(dsdev);
403 *sdev = (int)dsdev;
404 } /* end - void ndapmsd0( int n, int arrin[], int indx[]) */
EXHIBIT A

Claims

WHAT IS CLAIMED IS:
1. A method of identifying an object under examination, said object has a discernible boundary; said method comprising the steps of:
a) forming an image of said object;
b) segmenting said image to form a plurality of pixels;
c) detecting the boundary of said object under examination in said image;
d) forming a histogram of a parameter of each pixel withi'n the boundary detected;
e) forming a cumulative histogram of said histogram formed from step (d);
f) developing a relationship, from the
cumulative histogram of step (e), between a value of the cumulative number of pixels and its associated parameter; and
g) identifying said object under examination, based upon said relationship developed from step (f) associated with said object.
2. The method of Claim 1, wherein said
identifying step further comprising:
comparing said relationship of step (f) associated with said object under examination, to a table of pre-determined relationships of other identified objects to identify the object under examination.
3. The method of Claim 2, wherein said table of pre-determined relationships of other identified objects comprises a range of values.
4. The method of Claim 3, wherein said table of pre-determined relationships are based upon experimental results.
5. The method of Claim 1, wherein said
parameter is intensity of visible light.
6. The method of Claim 1, wherein said
parameter is a difference of color representations at the same position.
7. The method of Claim 6, wherein said color representation is based upon three primary colors.
8. The method of Claim 6, wherein said color representation is based upon hue, intensity, and saturation of colors.
9. The method of Claim 7, wherein said parameter is
log (a) - log (b)
where a and b are the intensities of two different primary colors.
10. The method of Claim 9 wherein a is red color and b is blue color.
11. The method of Claim 9, wherein a is blue color and b is green color.
12. The method of Claim 9, wherein a is green color and b is red color.
13. A method of differentiating a plurality of different objects under examination, wherein each object has a discernible boundary; said method comprising the steps of:
a) forming a plurality of images, with each image of each of said plurality of objects;
b) segmenting each of said plurality of images to form a plurality of pixels;
c) detecting the boundary of each object under examination in each of said images;
d) forming a plurality of histograms, with each histogram being of the same parameter of each pixel within the boundary detected of each of said images;
e) forming a plurality of cumulative
histograms, with each cumulative histogram formed from a histogram formed in step (d);
f) developing a relationship for each object, from each of the cumulative histograms of step (e), each relationship being between a value of the cumulative number of pixels and its
associated parameter; and
g) comparing the relationship of each object of step (f) to one another to differentiate said objects.
14. The method of Claim 13, wherein said parameter is intensity of visible light.
15. The method of Claim 13, wherein said parameter is a difference of color representations at the same position.
16. The method of Claim 15, wherein said color representation is based upon three primary colors.
17. The method of Claim 15, wherein said color representation is based upon hue, intensity, and saturation of colors.
18. The method of Claim 16, wherein said parameter is
log (a) - log (b)
where a and b are the intensities of two different primary colors.
19. The method of Claim 18 wherein a is red color and b is blue color.
20. The method of Claim 18, wherein a is blue color and b is green color.
21. The method of Claim 18, wherein a is green color and b is red color.
22. An apparatus for identifying an object under examination, said object has a discernible boundary; said apparatus comprising:
a) means for forming an image of said object; b) means for segmenting said image to form a plurality of pixels;
c) means for detecting the boundary of said image of said object under examination;
d) means for measuring a parameter of each pixel within the boundary detected and
establishing a histogram thereof;
e) means for forming a cumulative histogram from said histogram;
f) means for developing a relationship between a value of the cumulative number of pixels and its associated parameter from said cumulative histogram; and
g) means for identifying said object under examination, based upon said relationship developed from step (f) associated with said object.
23. The apparatus of Claim 22, wherein said means for identifying further comprising:
means for comparing said relationship of step (f) associa'ted with said object under
examination, to a table of pre-determined
relationships of other identified objects to identify the object under examination.
24. The apparatus of Claim 23, wherein said table of pre-determined relationships of other identified objects comprises a range of values.
25. The apparatus of Claim 22, wherein said parameter is intensity of visible light.
26. The apparatus of Claim 25, wherein said parameter is a difference of color representations at the same position.
27. The apparatus of Claim 26, wherein said color representation is based upon three primary colors.
28. The apparatus of Claim 26, wherein said color representation is based upon hue, intensity, and saturation of colors.
29. The apparatus of Claim 27, wherein said parameter is
log (a) - log (b)
where a and b are the intensities of two different primary colors.
30. The apparatus of Claim 29, wherein a is red color and b is blue color.
31. The apparatus of Claim 29, wherein a is blue color and b' is green color.
32. The apparatus of Claim 29, wherein a is green color and b is red color.
33. An apparatus for differentiating a
plurality of objects under examination, each of said objects has a discernible boundary; said apparatus comprising:
a) means for forming an image of each of said plurality of objects to form a plurality of images;
b) means for segmenting each of said plurality of images to form a plurality of pixels;
c) means for detecting the boundary of each of said plurality of objects under examination in each of said plurality of images;
d) means for measuring a parameter of each pixel within the boundary detected of each of said plurality of images and establishing a plurality of histograms thereof;
e) means for forming a plurality of cumulative histograms, with each cumulative histogram formed from one of said plurality of histograms; f) means for developing a plurality of
relationships, with each relationship associated with one of the objects under examination, and each relationship being a value of the
cumulative number of pixels and its associated parameter from one of said plurality of
cumulative histograms; and
g) means for comparing said plurality of relationships to one another to differentiate said objects from one another.
PCT/US1990/003064 1989-05-25 1990-05-25 A method and an apparatus for identifying an object WO1990014639A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US35732489A 1989-05-25 1989-05-25
US357,324 1989-05-25

Publications (1)

Publication Number Publication Date
WO1990014639A1 true WO1990014639A1 (en) 1990-11-29

Family

ID=23405130

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1990/003064 WO1990014639A1 (en) 1989-05-25 1990-05-25 A method and an apparatus for identifying an object

Country Status (2)

Country Link
AU (1) AU5950590A (en)
WO (1) WO1990014639A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2690543A1 (en) * 1992-04-27 1993-10-29 Robert Pierre Creation and verification of signature of digitised image of object - uses histogram of pixels in inspection window as basis for determining value of comparison parameter
FR2693580A1 (en) * 1992-04-27 1994-01-14 Robert Pierre Creation/verification method for signature of object represented by digital pixel image - involves calculating reference from original signature and control histogram in verification stage, and calculating comparison of pixels
WO1994008315A1 (en) 1992-10-02 1994-04-14 International Remote Imaging Systems, Inc. Method and apparatus for identifying an object using an ordered sequence of boundary pixel parameters
US5954583A (en) * 1992-11-05 1999-09-21 Com21 Limited Secure access control system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3936800A (en) * 1973-03-28 1976-02-03 Hitachi, Ltd. Pattern recognition system
US4075604A (en) * 1976-02-23 1978-02-21 Tasco S.P.A. Method and apparatus for real time image recognition
US4472736A (en) * 1980-03-11 1984-09-18 Dainippon Ink And Chemicals Incorporated Lithographic reproduction original classification and color separation tone curve adjustment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3936800A (en) * 1973-03-28 1976-02-03 Hitachi, Ltd. Pattern recognition system
US4075604A (en) * 1976-02-23 1978-02-21 Tasco S.P.A. Method and apparatus for real time image recognition
US4472736A (en) * 1980-03-11 1984-09-18 Dainippon Ink And Chemicals Incorporated Lithographic reproduction original classification and color separation tone curve adjustment

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2690543A1 (en) * 1992-04-27 1993-10-29 Robert Pierre Creation and verification of signature of digitised image of object - uses histogram of pixels in inspection window as basis for determining value of comparison parameter
FR2693580A1 (en) * 1992-04-27 1994-01-14 Robert Pierre Creation/verification method for signature of object represented by digital pixel image - involves calculating reference from original signature and control histogram in verification stage, and calculating comparison of pixels
WO1994008315A1 (en) 1992-10-02 1994-04-14 International Remote Imaging Systems, Inc. Method and apparatus for identifying an object using an ordered sequence of boundary pixel parameters
US5343538A (en) * 1992-10-02 1994-08-30 International Remote Imaging Systems, Inc. Method and an apparatus for identifying an object using quantile partitions
AU675465B2 (en) * 1992-10-02 1997-02-06 International Remote Imaging Systems Inc. Method and apparatus for identifying an object using an ordered sequence of boundary pixel parameters
US5954583A (en) * 1992-11-05 1999-09-21 Com21 Limited Secure access control system

Also Published As

Publication number Publication date
AU5950590A (en) 1990-12-18

Similar Documents

Publication Publication Date Title
US5343538A (en) Method and an apparatus for identifying an object using quantile partitions
US5123055A (en) Method and an apparatus for differentiating a sample of biological cells
EP1977371B1 (en) Method and system for identifying illumination fields in an image
US5612928A (en) Method and apparatus for classifying objects in sonar images
US6272250B1 (en) Color clustering for scene change detection and object tracking in video sequences
CN110930353A (en) Method and device for detecting state of hole site protection door, computer equipment and storage medium
CN101599175B (en) Detection method for determining alteration of shooting background and image processing device
CN112801049B (en) Image classification method, device and equipment
CN109975196B (en) Reticulocyte detection method and system
CN110057820B (en) Method, system and storage medium for on-line detection of chlorine-hydrogen ratio of hydrogen chloride synthesis furnace
Harms et al. Segmentation of stained blood cell images measured at high scanning density with high magnification and high numerical aperture optics
CN106503638A (en) For the image procossing of colour recognition, vehicle color identification method and system
CN108710852A (en) It is a kind of to limit the size distribution image recognition methods for shooting depth and system
CN115761341A (en) Automatic textile waste classification method and device based on image recognition
CN114973104A (en) Dynamic flame detection algorithm and system based on video image
WO1990014639A1 (en) A method and an apparatus for identifying an object
CN117974555A (en) Cell counting method based on computer vision
CN109658405B (en) Image data quality control method and system in crop live-action observation
CN115619725A (en) Electronic component detection method and device, electronic equipment and automatic quality inspection equipment
CN115511821A (en) Pipeline defect identification method and device, electronic equipment and storage medium
CN112101448A (en) Screen image recognition method, device and system and readable storage medium
CN116433671B (en) Colloidal gold detection method, system and storage medium based on image recognition
CN118014443B (en) Medicine monitoring method and device
CN117649564B (en) Aircraft cabin assembly deviation recognition device and quantitative evaluation method
CN117711027B (en) Cow individual identity recognition method based on nose line

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AU CA JP

AL Designated countries for regional patents

Kind code of ref document: A1

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

NENP Non-entry into the national phase

Ref country code: CA