IP Library › Granted Patent US 12,141,901
Granted Patent B2
US 12,141,901 · App. 18/306,961 · Granted Nov 12, 2024

Generating vector graphics by processing raster graphics

Inventors: Martin Tobias Holmedahl Sandsmark (Oslo, NO); Gunnar Sletta (Bergen, NO)
Assignee: Remarkable AS
G06T11/203G06F3/04883G06T2210/56
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 12,141,901
App. No.
18/306,961
Granted
Nov 12, 2024
Kind
B2
Abstract

One embodiment of a disclosed system, method, and computer readable storage medium which includes an algorithm for generating a vector graphic based on a raster graphic input. A tablet scribe system identifies a boundary of a raster graphic image. The boundary is comprised of contrasting pixels in the raster graphic. The system determines a slope for each line segment of the raster graphic boundary. Based on a comparison of the slope for the adjacent line segments, the system generates a contour replaces line segments with equivalent slopes wherein each line segments represents a point on the contour. The system condenses the contour by removing redundant points on the contour based on their position relative to neighboring points and converts the edges of one or more remaining line segments into continuous curves on the contour.

Claims (40)

1. A non-transitory computer readable storage medium comprising stored instructions, which when executed by at least one processor, causes the processor to:

access a graphic outlined by a plurality of contour lines, wherein each contour line of the plurality of contour lines comprises one or more points on a boundary of the graphic;

identify a line segment of the boundary that has not previously been replaced with a contour line of the plurality of contour lines;

determine a point representative of the identified line segment, a first point on a contour line of the plurality of contour lines behind the determined point, and a second point on a contour line of the plurality of contour lines ahead of the determined point;

determine a tangent line of the determine point based on the first point and the second point;

generate a first spline control point on the tangent line at a distance proportional to a distance between the first point and the determined point and a second spline control point on the tangent line at a distance proportional to a distance between the second point and the determined point; and

generate a curved representation of the identified line segment by connecting the first spline control point to the first point and the second spline control point to the second point.

2. The non-transitory computer readable storage medium of claim 1 , wherein the processor is further configured to incorporate the curved representation into the graphic outlined by the plurality of contour lines to form an updated graphic.

3. The non-transitory computer readable storage medium of claim 2 , wherein the updated graphic comprises a vector graphic bounded by a contoured outlined of a pixelated raster graphic input.

4. The non-transitory computer readable storage medium of claim 1 , wherein the identified line segment comprises points remaining unconverted following conversion of a raster graphic to a vector graphic.

5. The non-transitory computer readable storage medium of claim 4 , wherein the graphic comprises elements of the raster graphic converted to the vector graphic.

6. The non-transitory computer readable storage medium of claim 1 , wherein the boundary defines an image comprising line segments of each pixel of a plurality of pixels in the image.

7. The non-transitory computer readable storage medium of claim 6 , wherein the boundary comprises at least one of black pixels and shaded pixels that form the image.

8. The non-transitory computer readable storage medium of claim 1 , wherein generating the curved representation of the identified line segment comprises employing a Ramer-Douglas-Peuker end-point fit algorithm to remodel a contour composed of line segments as a curve having fewer points.

9. A method for generating a vector graphic, the method comprising:

access a graphic outlined by a plurality of contour lines, wherein each contour line of the plurality of contour lines comprises one or more points on a boundary of the graphic;

identify a line segment of the boundary that has not previously been replaced with a contour line of the plurality of contour lines;

determine a point representative of the identified line segment, a first point on a contour line of the plurality of contour lines behind the determined point, and a second point on a contour line of the plurality of contour lines ahead of the determined point;

determine a tangent line of the determined point based on the first point and the second point;

generate a first spline control point on the tangent line at a distance proportional to a distance between the first point and the determined point and a second spline control point on the tangent line at a distance proportional to a distance between the second point and the determined point; and

generate a curved representation of the identified line segment by connecting the first spline control point to the first point and the second spline control point to the second point.

10. The method for generating a vector graphic of claim 9 , further comprising:

incorporate the curved representation into the graphic outlined by the plurality of contour lines to form an updated graphic.

11. The method for generating a vector graphic of claim 10 , wherein the updated graphic comprises a vector graphic bounded by a contoured outlined of a pixelated raster graphic input.

12. The method for generating a vector graphic of claim 9 , wherein the identified line segment comprises points remaining unconverted following conversion of a raster graphic to a vector graphic.

13. The method for generating a vector graphic of claim 12 , wherein the graphic comprises elements of the raster graphic converted to the vector graphic.

14. The method for generating a vector graphic of claim 9 , wherein the boundary defines an image comprising line segments of each pixel of a plurality of pixels in the image.

15. The method for generating a vector graphic of claim 14 , wherein the boundary comprises at least one of black pixels and shaded pixels that form the image.

16. The method for generating a vector graphic of claim 9 , wherein generating the curved representation of the identified line segment comprises employing a Ramer-Douglas-Peuker end-point fit algorithm to remodel a contour composed of line segments as a curve having fewer points.

17. A system for generating a vector graphic, the system comprising:

a pixel data converter that accesses a graphic outlined by a plurality of contour lines, wherein each contour line of the plurality of contour lines comprises one or more points on a boundary of the graphic; and

a curve conversion module that:

identifies a line segment of the boundary that has not previously been replaced with a contour line of the plurality of contour lines;

determines a point representative of the identified line segment, a first point on a contour line of the plurality of contour lines behind the determined point, and a second point on a contour line of the plurality of contour lines ahead of the determined point;

determines a tangent line of the determined point based on the first point and the second point;

generates a first spline control point on the tangent line at a distance proportional to a distance between the first point and the determined point and a second spline control point on the tangent line at a distance proportional to a distance between the second point and the determined point; and

generates a curved representation of the identified line segment by connecting the first spline control point to the first point and the second spline control point to the second point.

18. The system of claim 17 , wherein the curve conversion module incorporates the curved representation into the graphic outlined by the plurality of contour lines to form an updated graphic.

19. The system of claim 18 , wherein the updated graphic comprises a vector graphic bounded by a contoured outlined of a pixelated raster graphic input.

20. The system of claim 17 , the system, wherein the identified line segment comprises points remaining unconverted following conversion of a raster graphic to a vector graphic.

Assignments (2)
CHANGE OF NAME Recorded Aug 13, 2024
From: REMARKABLE AS
To: REMARKABLE AS
Reel/Frame 068567/0578 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2023
From: SANDSMARK, MARTIN TOBIAS HOLMEDAHL; SLETTA, GUNNAR
To: REMARKABLE AS
Reel/Frame 064349/0381 →
Continuity (4)
Continuation 17500897 · Oct 13, 2021
Continuation 16995564 · Aug 17, 2020
Provisional Application 62888996 · Aug 19, 2019
Related Publication 20230377221A1 · Nov 23, 2023