System and method for performing edge detection in an image
First Claim
1. A computer-implemented method for performing edge detection in an image comprising a plurality of pixels, the method comprising:
- a) storing the plurality of pixels in a memory of a computer;
b) generating a curve based on two or more random pixels of the plurality of pixels;
c) testing the curve against a first subset of the plurality of pixels, wherein the first subset is less than all of the plurality of pixels, wherein said testing produces first test results;
d) performing (b) and (c) a plurality of times to determine a curve which meets the first criteria, wherein said performing (b) and (c) a plurality of times comprises performing (b) and (c) in an iterative manner until ending criteria are met; and
e) if said first test results meet first criteria, storing information regarding the curve, wherein the curve comprises a detected edge in the image.
6 Assignments
0 Petitions
Accused Products
Abstract
A system and method for performing a curve fit on a plurality of data points. In an initial phase, a subset Pmax of the plurality of points which represents an optimal curve is determined. This phase is based on a statistical model which dictates that after trying at most Nmin random curves, each connecting a randomly selected two or more points from the input set, one of the curves will pass within a specified radius of the subset Pmax of the input points. The subset Pmax may then be used in the second phase of the method, where a refined curve fit is made by iteratively culling outliers from the subset Pmax with respect to a succession of optimal curves fit to the modified subset Pmax at each iteration. The refined curve fit generates a refined curve, which may be output along with a final culled subset Kfinal of Pmax.
25 Citations
32 Claims
-
1. A computer-implemented method for performing edge detection in an image comprising a plurality of pixels, the method comprising:
-
a) storing the plurality of pixels in a memory of a computer; b) generating a curve based on two or more random pixels of the plurality of pixels; c) testing the curve against a first subset of the plurality of pixels, wherein the first subset is less than all of the plurality of pixels, wherein said testing produces first test results; d) performing (b) and (c) a plurality of times to determine a curve which meets the first criteria, wherein said performing (b) and (c) a plurality of times comprises performing (b) and (c) in an iterative manner until ending criteria are met; and e) if said first test results meet first criteria, storing information regarding the curve, wherein the curve comprises a detected edge in the image. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A memory medium operable to store program instructions for performing edge detection in a received image comprising a plurality of pixels, wherein the program instructions are executable to perform:
-
a) generating a curve based on two or more random pixels of the plurality of pixels; b) testing the curve against a first subset of the plurality of pixels, wherein the first subset is less than all of the plurality of pixels, wherein said testing produces first test results; c) performing (a) and (b) a plurality of times to determine a curve which meets the first criteria, wherein said performing (a) and (b) a plurality of times comprises performing (a) and (b) in an iterative manner until ending criteria are met; and
;d) if said first test results meet first criteria, storing information regarding the curve, wherein the curve comprises a detected edge in the image. - View Dependent Claims (20, 21, 22, 23)
-
-
24. A computer based system for performing edge detection in an image comprising a plurality of pixels, the system comprising:
-
a CPU; a memory medium coupled to the CPU, wherein the memory is operable to store program instructions for performing edge detection, and wherein the CPU is operable to execute the program instructions; and an input which is operable to receive the plurality of pixels; wherein the program instructions are executable by the CPU to; a) generate a curve based on two or more random pixels of the plurality of pixels; b) test the curve against a first subset of the plurality of pixels, wherein said testing produces first test results; (c) perform (a) and (b) a plurality of times to determine a curve which meets first criteria, wherein said performing (a) and (b) a plurality of times comprises performing (a) and (b) in an iterative manner until ending criteria are met, and wherein said ending criteria comprise one or more of; the number of iterations meeting or exceeding an iteration threshold; and a number of pixels of the plurality of pixels within a specified radius of the curve meeting or exceeding a specified minimum value; d) said first test results meet first criteria, store information regarding the curve, wherein the refined curve comprises a detected edge in the image. - View Dependent Claims (25, 26, 27, 28)
-
-
29. A memory medium operable to store program instructions for performing edge detection in a received image comprising a plurality of pixels, wherein the program instructions are executable to perform:
-
a) generating a curve based on two or more random pixels of the plurality of pixels; b) testing the curve against a first subset of the plurality of pixels, wherein said testing produces first test results; c) if said first test results meet first criteria, outputting information regarding the curve, wherein the curve comprises a detected edge in the image; d) performing a refined curve fit, wherein the refined curve fit is performed using a second subset of the plurality of pixels comprising pixels within said specified pixel radius of the curve, wherein the refined curve fit comprises iteratively culling outlying pixels from the second subset, generating a culled subset of pixels, and fitting a refined curve to the culled subset at each iteration until an ending condition is met, wherein the refined curve fit generates a refined curve, and e) generating output, comprising one or more of information regarding the refined curve, and the culled subset of the plurality of pixels, wherein the curve comprises a refined detected edge in the image.
-
-
30. A computer-implemented method for performing edge detection in a received image comprising a plurality of pixels, comprising:
-
a) generating a curve based on two or more random pixels of the plurality of pixels; b) testing the curve against a first subset of the plurality of pixels, wherein said testing produces first test results; c) if said first test results meet first criteria, outputting information regarding the curve, wherein the curve comprises a detected edge in the image; d) performing a refined curve fit, wherein the refined curve fit is performed using a second subset of the plurality of pixels comprising pixels within said specified pixel radius of the curve, wherein the refined curve fit comprises iteratively culling outlying pixels from the second subset, generating a culled subset of pixels, and fitting a refined curve to the culled subset at each iteration until an ending condition is met, wherein the refined curve fit generates a refined curve, and e) generating output, comprising one or more of information regarding the refined curve, and the culled subset of the plurality of pixels, wherein the curve comprises a refined detected edge in the image.
-
-
31. A computer based system for performing a curve fit, comprising:
-
a CPU; a memory medium coupled to the CPU, wherein the memory is operable to store program instructions, and wherein the CPU is operable to execute the program instructions; and an input which is operable to receive a plurality of pixels; wherein the program instructions are executable by the CPU to; a) generate a curve based on two or more random pixels of the plurality of pixels; b) test the curve against a first subset of the plurality of pixels, wherein said testing produces first test results; c) if said first test results meet first criteria, output information regarding the curve, wherein the curve comprises a detected edge in the image; d) perform a refined curve fit, wherein the refined curve fit is performed using a second subset of the plurality of pixels comprising pixels within said specified pixel radius of the curve, wherein in performing the refined curve fit, the program instructions are executable by the CPU to iteratively cull outlying pixels from the second subset, generate a culled subset of pixels, and fit a refined curve to the culled subset at each iteration until an ending condition is met, wherein the refined curve fit generates a refined curve, and e) generate output, comprising one or more of information regarding the refined curve, and the culled subset of the plurality of pixels, wherein the curve comprises a refined detected edge in the image.
-
-
32. A system for performing edge detection in a received image comprising a plurality of pixels, comprising:
-
means for storing a plurality of pixels; means for generating a curve based on two or more random pixels of the plurality of pixels; means for testing the curve against a first subset of the plurality of pixels, wherein said testing produces first test results; means for, if said first test results meet first criteria, outputting information regarding the curve, wherein the curve comprises a detected edge in the image; means for performing a refined curve fit, wherein the refined curve fit is performed using a second subset of the plurality of pixels comprising pixels within said specified pixel radius of the curve, wherein the refined curve fit comprises iteratively culling outlying pixels from the second subset, generating a culled subset of pixels, and fitting a refined curve to the culled subset at each iteration until an ending condition is met, wherein the refined curve fit generates a refined curve, and means for generating output, comprising one or more of information regarding the refined curve, and the culled subset of the plurality of pixels, wherein the curve comprises a refined detected edge in the image.
-
Specification