Automatic image feature embedding
AssigneeAdobe Systems Incorporated
InventorsKrish Chaudhury, Dejan Markovic
Life of this patent
Estimating the term…
Abstract
The invention features a method, system, and computer program product. A source bitmap image, a destination bitmap image, a source image feature outline surrounding a source region of the source bitmap image, and a destination image feature outline surrounding a destination region of the destination bitmap image are received. A point-to-point correspondence between the source image feature outline and the destination image feature outline is generated, such that the point-to-point correspondence defines a reshaping of the source image feature outline. An interpolation surface is calculated interpolating an area of the source bitmap image that includes the source region. The interpolation surface is reshaped using the point-to-point correspondence.
Claims49
A machine-readable storage device encoded with a computer program, the computer program comprising instructions that when executed by a programmable processor of a computer cause the computer to perform operations comprising:
- receiving in the computer a source bitmap image, a destination bitmap image, a source image feature outline defined for the source bitmap image, and a destination image feature outline defined for the destination bitmap image;
- interpolating the source image feature outline as a source B-spline curve and the destination image feature outline as a destination B-spline curve, wherein the source B-spline curve and destination B-spline curve each has multiple knots;
- calculating a B-spline surface that interpolates the source bitmap image bounded by the source image feature outline, wherein the B-spline surface has multiple surface control points;
- calculating a mapping between the source image feature outline and the destination image feature outline, wherein the mapping defines a respective displacement value for each one of one or more anchor control points, each anchor control point identified as a surface control point of the B-spline surface that is closest to a respective knot of the source B-spline curve, and not all surface control points are anchor control points;
- displacing each anchor control point by the respective displacement value defined in the mapping;
- and
- displacing the surface control points of the B-spline surface that are not anchor control points, without further displacing the anchor control points and without changing any color of any surface control point, to generate a displaced B-spline surface, wherein the displaced B-spline surface is C2 continuous across an entirety of the displaced B-spline surface;
- wherein the interpolating is performed by one or more processors of the computer.
A machine-readable storage device encoded with a computer program, the computer program comprising instructions that when executed by a programmable processor of a computer cause the computer to perform operations comprising:
- receiving in the computer a source bitmap image, a destination bitmap image, a source image feature outline defined for the source bitmap image, and a destination image feature outline defined for the destination bitmap image;
- interpolating the source image feature outline as a source B-spline curve and the destination image feature outline as a destination B-spline curve, wherein the source B-spline curve and destination B-spline curve each has multiple knots;
- calculating a B-spline surface that interpolates the destination bitmap image, wherein the B-spline surface has multiple surface control points;
- calculating a mapping between the destination image feature outline and the source image feature outline, wherein the mapping defines a respective displacement value for each one of one or more anchor control points, each anchor control point identified as a surface control point of the B-spline surface that is closest to a respective knot of the destination B-spline curve, and not all surface control points are anchor control points;
- displacing each anchor control point by the respective displacement value defined in the mapping;
- and
- displacing the surface control points of the B-spline surface that are not anchor control points, without further displacing the anchor control points and without changing any color of any surface control point, to generate a displaced B-spline surface, wherein the displaced B-spline surface is C2 continuous across an entirety of the displaced B-spline surface;
- wherein the interpolating is performed by one or more processors of the computer.
A computer-implemented method comprising:
- receiving a source bitmap image, a destination bitmap image, a source image feature outline defined for the source bitmap image, and a destination image feature outline defined for the destination bitmap image;
- interpolating the source image feature outline as a source B-spline curve and the destination image feature outline as a destination B-spline curve, wherein the source B-spline curve and destination B-spline curve each has multiple knots;
- calculating a B-spline surface that interpolates the source bitmap image bounded by the source image feature outline, wherein the B-spline surface has multiple surface control points;
- calculating a mapping between the source image feature outline and the destination image feature outline, wherein the mapping defines a respective displacement value for each one of one or more anchor control points, each anchor control point identified as a surface control point of the B-spline surface that is closest to a respective knot of the source B-spline curve, and not all surface control points are anchor control points;
- displacing each anchor control point by the respective displacement value defined in the mapping;
- and
- displacing the surface control points of the B-spline surface that are not anchor control points, without further displacing the anchor control points and without changing any color of any surface control point, to generate a displaced B-spline surface, wherein the displaced B-spline surface is C2 continuous across an entirety of the displaced B-spline surface;
- wherein the interpolating is performed by one or more processors of a computer.
A computer-implemented method comprising:
- receiving a source bitmap image, a destination bitmap image, a source image feature outline defined for the source bitmap image, and a destination image feature outline defined for the destination bitmap image;
- interpolating the source image feature outline as a source B-spline curve and the destination image feature outline as a destination B-spline curve, wherein the source B-spline curve and destination B-spline curve each has multiple knots;
- calculating a B-spline surface that interpolates the destination bitmap image, wherein the B-spline surface has multiple surface control points;
- calculating a mapping between the destination image feature outline and the source image feature outline, wherein the mapping defines a respective displacement value for each one of one or more anchor control points, each anchor control point identified as a surface control point of the B-spline surface that is closest to a respective knot of the destination B-spline curve, and not all surface control points are anchor control points;
- displacing each anchor control point by the respective displacement value defined in the mapping;
- and
- displacing the surface control points of the B-spline surface that are not anchor control points, without further displacing the anchor control points and without changing any color of any surface control point, to generate a displaced B-spline surface, wherein the displaced B-spline surface is C2 continuous across an entirety of the displaced B-spline surface;
- wherein the interpolating is performed by one or more processors of a computer.
A system comprising:
- a user interface device;
- and
- one or more computers coupled with the user interface device, which:
- receive a source bitmap image, a destination bitmap image, a source image feature outline defined for the source bitmap image, and a destination image feature outline defined for the destination bitmap image;
- interpolate the source image feature outline as a source B-spline curve and the destination image feature outline as a destination B-spline curve, wherein the source B-spline curve and destination B-spline curve each has multiple knots;
- calculate a B-spline surface that interpolates the source bitmap image bounded by the source image feature outline, wherein the B-spline surface has multiple surface control points;
- calculate a mapping between the source image feature outline and the destination image feature outline, wherein the mapping defines a respective displacement value for each one of one or more anchor control points, each anchor control point identified as a surface control point of the B-spline surface that is closest to a respective knot of the source B-spline curve, and not all surface control points are anchor control points;
- displace each anchor control point by the respective displacement value defined in the mapping;
- and
- displace the surface control points of the B-spline surface that are not anchor control points, without further displacing the anchor control points and without changing any color of any surface control point, to generate a displaced B-spline surface, wherein the displaced B-spline surface is C2 continuous across an entirety of the displaced B-spline surface.
A system comprising:
- a user interface device;
- and
- one or more computers coupled with the user interface device, which:
- receive a source bitmap image, a destination bitmap image, a source image feature outline defined for the source bitmap image, and a destination image feature outline defined for the destination bitmap image;
- interpolate the source image feature outline as a source B-spline curve and the destination image feature outline as a destination B-spline curve, wherein the source B-spline curve and destination B-spline curve each has multiple knots;
- calculate a B-spline surface that interpolates the destination bitmap image, wherein the B-spline surface has multiple surface control points;
- calculate a mapping between the destination image feature outline and the source image feature outline, wherein the mapping defines a respective displacement value for each one of one or more anchor control points, each anchor control point identified as a surface control point of the B-spline surface that is closest to a respective knot of the destination B-spline curve, and not all surface control points are anchor control points;
- displace each anchor control point by the respective displacement value defined in the mapping;
- and
- displace the surface control points of the B-spline surface that are not anchor control points, without further displacing the anchor control points and without changing any color of any surface control point, to generate a displaced B-spline surface, wherein the displaced B-spline surface is C2 continuous across an entirety of the displaced B-spline surface.
Dependencies are inferred from the claim text.