Object edge point filtering system for machine vision
First Claim
1. A method for filtering possible edge points in an edge image represented by an array of edge image coordinates each having an edge point magnitude in a preselected range of edge point magnitudes, the edge image corresponding to an image of an object represented by an array of pixels, comprising the steps of:
- a. forming an edge map array of edge map coordinates arranged in correspondence with the edge image, each edge map coordinate assigned one of three preselected edge indicator values indicative of a relationship between the corresponding edge image coordinate edge point magnitude and two preselected edge point magnitude thresholds, the assigned edge map coordinate values being stored in an addressable memory;
b. forming an output edge point array of output edge point coordinates arranged in correspondence with the edge image, comprising the steps of;
c. initializing each output edge point coordinate to a first of two preselected edge point values, the initialized coordinate values being stored in an addressable memory;
d. constructing a first address stack to track memory addresses at which edge map coordinate values in the edge map array are stored;
e. constructing a second address stack to track memory addresses at which output edge point coordinate values in the output edge point array are stored;
f. assigning to selected of the initialized output edge point coordinates the second preselected edge point value, comprising the steps of;
g. scanning the edge map array for an edge map coordinate assigned the first preselected edge indicator value;
h. pushing on the first stack the edge map array address of a first encountered edge map coordinate assigned the first preselected edge indicator value;
i. pushing on the second stack the output edge point array address corresponding to the edge map array address pushed on the first stack in step h;
j. popping off of the first and second stacks the edge map coordinate address and corresponding output edge point coordinate address, respectively most recently pushed on the stacks;
k. assigning to the edge map coordinate whose address was popped off of the first stack in step j the third edge indicator value;
l. assigning to the output edge point coordinate whose address was popped off the second stack in step j the second preselected edge point value;
m. examining edge map coordinates in the edge map array that neighbor the edge map coordinate whose address was popped off the first stack in step j for any edge map coordinates assigned either the first or second preselected edge indicator values;
n. pushing on the first stack addresses of edge map coordinates found in step m to be assigned either the first or second preselected edge indicator values;
o. pushing on the second stack the output edge point coordinate address corresponding to any edge map array address pushed on the first stack in step n;
p. repeating steps j-o until all addresses are popped off the first and second stacks;
q. repeating steps g-p until the edge map array is entirely scanned, those selected output edge point coordinates in the resulting output edge point array assigned with the second preselected edge point value each representing a likely edge point in the object image.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for filtering edge points in an edge image represented by an array of edge image coordinates each having an edge point magnitude. An edge map array is formed of edge map coordinates each assigned one of three edge indicator values indicative of the relationship between the corresponding edge image coordinate edge point magnitude and two preselected edge magnitude thresholds. An output edge point array is formed of output edge point coordinates to indicate those edge image coordinates and corresponding object image pixels that are validated by the system as being associated with likely object edge points. This is accomplished by constructing a first address stack to track memory addresses at which edge map coordinate values are stored and constructing a second address stack to track memory addresses at which output edge point coordinate values are stored as the output edge point array is constructed. Selected output edge point coordinates are assigned with a preselected edge point value by first scanning the edge map array for edge coordinates assigned the first preselected edge indicator value and, using the stacks to keep track of the addresses of these coordinates, neighboring edge map coordinates are examined for any edge map coordinates assigned with either the first or second preselected edge indicator values. The address of edge map coordinates found to be assigned with either the first or second preselected edge indicator values are then tracked by the stacks.
137 Citations
32 Claims
-
1. A method for filtering possible edge points in an edge image represented by an array of edge image coordinates each having an edge point magnitude in a preselected range of edge point magnitudes, the edge image corresponding to an image of an object represented by an array of pixels, comprising the steps of:
-
a. forming an edge map array of edge map coordinates arranged in correspondence with the edge image, each edge map coordinate assigned one of three preselected edge indicator values indicative of a relationship between the corresponding edge image coordinate edge point magnitude and two preselected edge point magnitude thresholds, the assigned edge map coordinate values being stored in an addressable memory; b. forming an output edge point array of output edge point coordinates arranged in correspondence with the edge image, comprising the steps of; c. initializing each output edge point coordinate to a first of two preselected edge point values, the initialized coordinate values being stored in an addressable memory; d. constructing a first address stack to track memory addresses at which edge map coordinate values in the edge map array are stored; e. constructing a second address stack to track memory addresses at which output edge point coordinate values in the output edge point array are stored; f. assigning to selected of the initialized output edge point coordinates the second preselected edge point value, comprising the steps of; g. scanning the edge map array for an edge map coordinate assigned the first preselected edge indicator value; h. pushing on the first stack the edge map array address of a first encountered edge map coordinate assigned the first preselected edge indicator value; i. pushing on the second stack the output edge point array address corresponding to the edge map array address pushed on the first stack in step h; j. popping off of the first and second stacks the edge map coordinate address and corresponding output edge point coordinate address, respectively most recently pushed on the stacks; k. assigning to the edge map coordinate whose address was popped off of the first stack in step j the third edge indicator value; l. assigning to the output edge point coordinate whose address was popped off the second stack in step j the second preselected edge point value; m. examining edge map coordinates in the edge map array that neighbor the edge map coordinate whose address was popped off the first stack in step j for any edge map coordinates assigned either the first or second preselected edge indicator values; n. pushing on the first stack addresses of edge map coordinates found in step m to be assigned either the first or second preselected edge indicator values; o. pushing on the second stack the output edge point coordinate address corresponding to any edge map array address pushed on the first stack in step n; p. repeating steps j-o until all addresses are popped off the first and second stacks; q. repeating steps g-p until the edge map array is entirely scanned, those selected output edge point coordinates in the resulting output edge point array assigned with the second preselected edge point value each representing a likely edge point in the object image. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A system for filtering possible edge points in an edge image represented by an array of edge image coordinates each having an edge point magnitude in a preselected range of edge point magnitudes, the edge image corresponding to an image of an object represented by an array of pixels, comprising:
-
means for forming an edge map array of edge map coordinates arranged in correspondence with the edge image array, each edge map coordinate assigned one of three preselected edge indicator values indicative of a relationship between the corresponding edge image coordinate edge point magnitude and two preselected edge threshold values, the assigned edge map coordinate values being stored in an addressable memory; means for forming an output edge point array of output edge point coordinates arranged in correspondence with the edge image, means for initializing each output edge point coordinate to a first of two preselected edge point values, the initialized output edge point coordinate values being stored in an addressable memory; a first address stack for tracking memory addresses at which edge map coordinate values in the edge map array are stored; a second address stack for tracking memory addresses at which output edge point coordinate values in the output edge point array are stored; means for assigning to selected initialized output edge point coordinates the second preselected edge point value, means for scanning the edge map array for an edge map coordinate assigned the first preselected edge indicator value; means for pushing on the first stack the edge map array address of a first encountered edge map coordinate assigned the first preselected edge indicator value; means for pushing on the second stack the output edge point array address corresponding to the edge map array address pushed on the first stack; means for popping off of the first and second stacks the edge map coordinate address and corresponding output edge point coordinate address, respectively most recently pushed on the stacks; means for assigning to the edge map coordinate whose address was popped off of the first stack the third edge indicator value; means for assigning to the output edge point coordinate whose address was popped off the second stack the second preselected edge point value; means for examining edge map coordinates in the edge map array that neighbor the edge map coordinate whose address was popped off the first stack for any edge map coordinates assigned either the first or second preselected edge indicator values; means for pushing on the first stack addresses of edge map coordinates found to be assigned either the first or second preselected edge indicator values; means for pushing on the second stack the output edge point coordinate address corresponding to any edge map array address pushed on the first stack, those selected output edge points in the resulting output edge point array assigned with the second preselected edge point value each representing a likely edge point in the object image. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
Specification