Identifying one or more objects within an image
First Claim
1. A computer-implemented method for identifying multiple objects within an image, the method comprising:
- receiving, in a programmable computer system, an image that includes two or more non-overlapping embedded images from an input device coupled to the programmable computer system;
identifying a plurality of edge pixels in the image based on a respective gradient value associated with each of the plurality of edge pixels, wherein the gradient value of each edge pixel satisfies a first threshold value;
identifying one or more non-edge pixels in the image based on a respective gradient value associated with each of the plurality of non-edge pixels, wherein the gradient value of each non-edge pixel satisfies a second threshold value;
selecting an edge pixel from the plurality of edge pixels;
identifying a substantially connected component that includes non-edge pixels and a plurality of substantially connected edge pixels being substantially connected to the selected edge pixel, wherein a number of non-edge pixels in the substantially connected component is based on a level of tolerance for non-edge pixels; and
identifying within the image a bounding area, wherein the bounding area surrounds the substantially connected component.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus, including computer program products, implementing techniques for identifying one or more objects within an image. The techniques include receiving an image that includes at least one object; identifying a plurality of edge pixels in the image, an edge pixel being a pixel that borders two contrasting areas of the image, the plurality of edge pixels including both inner edge pixels and outer edge pixels; and finding a substantially connected component correlated with each object, the substantially connected component comprising a set of the edge pixels that are connected by traversing substantially only edge pixels.
81 Citations
52 Claims
-
1. A computer-implemented method for identifying multiple objects within an image, the method comprising:
-
receiving, in a programmable computer system, an image that includes two or more non-overlapping embedded images from an input device coupled to the programmable computer system; identifying a plurality of edge pixels in the image based on a respective gradient value associated with each of the plurality of edge pixels, wherein the gradient value of each edge pixel satisfies a first threshold value; identifying one or more non-edge pixels in the image based on a respective gradient value associated with each of the plurality of non-edge pixels, wherein the gradient value of each non-edge pixel satisfies a second threshold value; selecting an edge pixel from the plurality of edge pixels; identifying a substantially connected component that includes non-edge pixels and a plurality of substantially connected edge pixels being substantially connected to the selected edge pixel, wherein a number of non-edge pixels in the substantially connected component is based on a level of tolerance for non-edge pixels; and identifying within the image a bounding area, wherein the bounding area surrounds the substantially connected component. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 32, 33)
-
-
16. A non-transitory computer program product, tangibly stored on a computer-readable medium, for identifying multiple objects within an image, comprising instructions operable to cause a programmable processor to perform operations comprising:
-
receiving an image that includes two or more non-overlapping embedded images; identifying a plurality of edge pixels in the image based on a respective gradient value associated with each of the plurality of edge pixels, wherein the gradient value of each edge pixel satisfies a first threshold value; identifying one or more non-edge pixels in the image based on a respective gradient value associated with each of the plurality of non-edge pixels, wherein the gradient value of each non-edge pixel satisfies a second threshold value; selecting an edge pixel from the plurality of edge pixels; identifying a substantially connected component that includes non-edge pixels and a plurality of substantially connected edge pixels being substantially connected to the selected edge pixel, wherein a number of non-edge pixels in the substantially connected component is based on a level of tolerance for non-edge pixels; and identifying within the image a bounding area, wherein the bounding area surrounds the substantially connected component. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 34, 35)
-
-
31. A non-transitory computer program product, tangibly stored on a computer-readable medium, for identifying multiple objects within a scanned image, comprising instructions operable to cause a programmable processor to perform operations comprising:
-
receiving a scanned image that includes multiple non-overlapping embedded images; and identifying the multiple non-overlapping embedded images by; (1) generating an edge pixel map of the image based on a respective gradient value associated with each pixel in the scanned image, the edge pixel map identifying each pixel in the scanned image as being an edge pixel or a non-edge pixel, an edge pixel being a pixel having a gradient value satisfying a first threshold value and a non-edge pixel being a pixel satisfying a second threshold value; (2) scanning the edge pixel map until an edge pixel is found; (3) identifying a substantially connected component containing the edge pixel, the substantially connected component being a set of edge pixels that are substantially connected by traversing adjacent edge pixels and adjacent non-edge pixels, wherein a number of non-edge pixels in the substantially connected component is based on a level of tolerance for non-edge pixels; (4) identifying within the image a bounding area surrounding the substantially connected component, and extracting one of the multiple non-overlapping embedded images based on the bounding area; (5) erasing from the edge pixel map all the pixels that belong to the substantially connected component or that correspond to pixels inside the extracted one of the multiple non-overlapping embedded images; and (6) repeating steps (2) through (5) until no more edge pixels are found. - View Dependent Claims (36, 37)
-
-
38. A system comprising:
-
a display device; a machine-readable storage device including a program product; and one or more processors operable to execute the program product, interact with the display device, and perform operations comprising; receiving an image that includes two or more non-overlapping embedded images; identifying a plurality of edge pixels in the image based on a respective gradient value associated with each of the plurality of edge pixels, wherein the gradient value of each edge pixel satisfies a first threshold value; identifying one or more non-edge pixels in the image based on a respective gradient value associated with each of the plurality of non-edge pixels, wherein the gradient value of each non-edge pixel satisfies a second threshold value; selecting an edge pixel from the plurality of edge pixels; identifying a substantially connected component that includes non-edge pixels and a plurality of substantially connected edge pixels being substantially connected to the selected edge pixel, wherein a number of non-edge pixels in the substantially connected component is based on a level of tolerance for non-edge pixels; and identifying within the image a bounding area, wherein the bounding area surrounds the substantially connected component. - View Dependent Claims (39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52)
-
Specification