IP Library Granted Patent US 7,386,169
Granted Patent B2
US 7,386,169 · App. 10/832,263 · Granted Jun 10, 2008

Method for edge detection and contour stroke generation

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,386,169
App. No.
10/832,263
Granted
Jun 10, 2008
Kind
B2
Abstract

A method for contour stroke generation. First, edge pixels of an image are detected. The connected edge pixels are traced to generate non-branched edges. Each non-branched edge represents a list of connected edge pixels without branches. Thereafter, the non-branched edges are clustered. Then, the non-branched edges are transformed into curves, and the curves are drawn with a series of footprints to generate contour strokes of the image.

Claims (58)

1. An edge detection method, comprising the steps of:

detecting edge pixels of an image;

tracing the connected edge pixels to generate non-branched edges; and

clustering the non-branched edges,

wherein tracing of non-branched edges further comprises the steps of:

selecting a starting pixel s from the edge pixels E;

removing the starting pixel s from the edge pixels E, adding the starting pixel s to a container EPList with an initial marking value M(s)=0, and setting a maximum marking value Max(M)=M(s);

for each pixel P in the container EPList,

checking each connected pixel p′ of the pixel p;

removing the connected pixel p′ from the edge pixels E, adding the connected pixel p′ to the container EPList with a marking value M(p′)=M(p)+1, and setting the maximum marking value Max(M)=M(p′) if the connected pixel p′ is in the edge pixels E; and repeating checking and removal for each pixel p until all pixels in the container EPList are processed;

checking the last pixel p from the container EPList, removing the pixel p from the container EPList if M(p)<Max(M), and repeating checking and removal for each pixel p until M(p)=Max(M); and

checking the next pixel p′ of the pixel p from the container EPList in the backward order, removing the pixel p′ from the container EPList if M(p′)≠Max(p)−1, and repeating checking and removal for each pixel p′ until the next pixel is the first pixel in the container EPList.

2. The method of claim 1 wherein the edge pixels are detected according to a gradient-based edge detection procedure.

3. The method of claim 1 wherein the starting pixel s is selected according to a corresponding gradient magnitude.

4. The method of claim 1 wherein clustering of the non-branched edges further comprises connecting any two non-branched edges if the distance of respective end pixels is within a distance threshold.

5. The method of claim 1 wherein clustering of the non-branched edges further comprises removing any non-branched edge if a corresponding edge length is shorter than a length threshold.

6. The method of claim 1 wherein clustering of the non-branched edges further comprises dividing any non-branched edge if a corresponding edge length is greater than a length threshold.

7. A method for contour stroke generation, comprising the steps of:

detecting edge pixels of an image;

tracing the connected edge pixels to generate non-branched edges;

clustering the non-branched edges;

transforming the non-branched edges into curves; and

drawing the curves with a series of footprints to generate contour strokes of the image, wherein the footprints have a specific size of a simple shape or resizable texture to simulate different kinds of brushes.

8. The method of claim 7 wherein the edge pixels are detected according to a gradient-based edge detection procedure.

9. The method of claim 7 wherein tracing of non-branched edges further comprises the steps of:

selecting a starting pixel s from the edge pixels E;

removing the starting pixel s from the edge pixels E, adding the starting pixel s to a container EPList with an initial marking value M(s)=0, and setting a maximum marking value Max(M)=M(s);

for each pixel p in the container EPList,

checking each connected pixel p′ of the pixel p;

removing the connected pixel p′ from the edge pixels E, adding the connected pixel p′ to the container EPList with a marking value M(p′)=M(p)+1, and setting the maximum marking value Max(M)=M(p′) if the connected pixel p′ is in the edge pixels E; and

repeating checking and removal for each pixel p until all pixels in the container EPList are processed;

checking the last pixel p from the container EPList, removing the pixel p from the container EPList if M(p)<Max(M), and repeating checking and removal for each pixel p until M(p)=Max(M); and

checking the next pixel p′ of the pixel p from the container EPList in the backward order, removing the pixel p′ from the container EPList if M(p′)≠Max(p)−1, and repeating checking and removal for each pixel p′ until the next pixel is the first pixel in the container EPList.

10. The method of claim 9 wherein the starting pixel s is selected according to a corresponding gradient magnitude.

11. The method of claim 7 wherein clustering of the non-branched edges further comprises connecting any two non-branched edges if the distance of respective end pixels is within a distance threshold.

12. The method of claim 7 wherein clustering of the non-branched edges further comprises removing any non-branched edge if a corresponding edge length is shorter than a length threshold.

13. The method of claim 7 wherein clustering of the non-branched edges further comprises dividing any non-branched edge if a corresponding edge length is greater than a length threshold.

14. The method of claim 7 wherein transforming of the non-branched edges into curves further comprises the steps of:

sampling points from the non-branched edges; and

drawing the curves using the sample points as control points.

15. The method of claim 14 wherein the points are sampled according to a sample frequency.

16. The method of claim 7 wherein the footprints have a fixed or variable size.

17. A machine-readable storage medium storing a computer program which when executed causes a computer to perform an edge detection method, the method comprising the steps of:

detecting edge pixels of an image;

tracing the connected edge pixels to generate non-branched edges; and

clustering the non-branched edges,

wherein tracing of non-branched edges further comprises the steps of:

selecting a starting pixel s from the edge pixels E;

removing the starting pixel s from the edge pixels E, adding the starting pixel s to a container EPList with an initial marking value M(s)=0, and setting a maximum marking value Max(M)=M(S);

for each pixel p in the container EPList,

checking each connected pixel p′ of the pixel p;

removing the connected pixel p′ from the edge pixels E; adding the connected pixel p′ to the container EPList with a marking value M(p′)=M(p)+1, and setting the maximum marking value Max(M)=M(p′) if the connected pixel p′ is in the edge pixels E; and

repeating checking and removal for each pixel p until all pixels in the container EPList are processed;

checking the last pixel p from the container EPList, removing the pixel p from the container EPList if M(p)<Max(M), and repeating checking and removal for each pixel p until M(p)=Max(M); and

checking the next pixel p′ of the pixel p from the container EPList in the backward order, removing the pixel p′ from the container EPList if M(p′)≠Max(p)−1 , and repeating checking and removal for each pixel p′ until the next pixel is the first pixel in the container EPList.

18. The storage medium of claim 17 wherein the method further comprises the steps of:

transforming the non-branched edges into curves; and

drawing the curves with a series of footprints to generate contour strokes of the image.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Jan 4, 2017
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: COREL CORPORATION; COREL US HOLDINGS,LLC; VAPC (LUX) S.Á.R.L.
Reel/Frame 041246/0001 →
SECURITY AGREEMENT Recorded Jun 21, 2013
From: COREL CORPORATION; COREL US HOLDINGS, LLC; COREL INC.; WINZIP INTERNATIONAL LLC; WINZIP COMPUTING LLC; WINZIP COMPUTING LP
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 030657/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2010
From: COREL TW CORPORATION
To: COREL CORPORATION
Reel/Frame 025387/0045 →
MERGER Recorded Mar 28, 2008
From: INTERVIDEO, DIGITAL TECHNOLOGY CORPORATION
To: COREL TW CORP.
Reel/Frame 020710/0684 →
MERGER Recorded Mar 27, 2008
From: ULEAD SYSTEMS, INC.
To: INTERVIDEO, DIGITAL TECHNOLOGY CORPORATION
Reel/Frame 020710/0360 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2004
From: LIN, YU-RU
To: ULEAD SYSTEMS, INC.
Reel/Frame 015270/0770 →