Vectorising Bitmaps into Semi-Transparent Gradient Layers
Christian Richardt1,2 Jorge Lopez-Moreno1,3 Adrien Bousseau1 Maneesh Agrawala4 George Drettakis1
1 Inria 2 MPI Informatik 3 URJC, Madrid 4 University of California, Berkeley
Computer Graphics Forum (Proceedings of EGSR 2014)
Abstract
We present an interactive approach for decompositing bitmap drawings and studio photographs into opaque and semi-transparent vector layers. Semi-transparent layers are especially challenging to extract, since they require the inversion of the non-linear compositing equation. We make this problem tractable by exploiting the parametric nature of vector gradients, jointly separating and vectorising semi-transparent regions. Specifically, we constrain the foreground colours to vary according to linear or radial parametric gradients, restricting the number of unknowns and allowing our system to efficiently solve for an editable semi-transparent foreground. We propose a progressive workflow, where the user successively selects a semi-transparent or opaque region in the bitmap, which our algorithm separates as a foreground vector gradient and a background bitmap layer. The user can choose to decompose the background further or vectorise it as an opaque layer. The resulting layered vector representation allows a variety of edits, such as modifying the shape of highlights, adding texture to an object or changing its diffuse colour.
Downloads
- Paper preprint (PDF, 6.5 MB)
- Supplemental video (MP4, 70 MB)
- Presentation slides (Keynote ’09, 18 MB) — PDF export of slides (16 MB)
- Ground-truth evaluation of our decompositing approach on synthetic images (ZIP, 13 MB)
- All of our input images and results as shown below (ZIP, 24 MB)
Bibtex
@article{LayeredVectorisation, author = {Christian Richardt and Jorge Lopez-Moreno and Adrien Bousseau and Maneesh Agrawala and George Drettakis}, title = {Vectorising Bitmaps into Semi-Transparent Gradient Layers}, journal = {Computer Graphics Forum (Proceedings of EGSR)}, year = {2014}, month = {July}, volume = {33}, number = {4}, pages = {11--19}, doi = {10.1111/cgf.12408}, url = {http://richardt.name/layered-vectorisation/}, }
Vectorisation results
‘cup’ photo
- Source: Shutterstock/George Dolgikh
- Preprocessing: horizontal flip, downsampled and cropped to 400×400 pixels
Select image to be shown on the left:
- Input photo (400×400 pixels)
- Our vectorised result (on light checkerboard, on dark checkerboard)
- Edited vector image (on light checkerboard, on dark checkerboard)
Downloads:
- Input photo (PNG, 0.1 MB)
- Our vectorised result (Adobe Illustrator file with edits in hidden layer, 1.5 MB)
- Our vectorised result (Illustrator-editable PDF, 1.6 MB)
- Edited vector image (Illustrator-editable PDF, 1.7 MB)
‘glass’ photo
- Source: Shutterstock/Givaga
- Preprocessing: downsampled and cropped to 400×1000 pixels
Select image to be shown on the left:
- Input photo (400×1000 pixels)
- Our vectorised result (on light checkerboard, on dark checkerboard)
- Edited vector image (on light checkerboard, on dark checkerboard)
Downloads:
- Input photo (PNG, 0.1 MB)
- Our vectorised result (Adobe Illustrator file with edits in hidden layer, 0.6 MB)
- Our vectorised result (Illustrator-editable PDF, 0.8 MB)
- Edited vector image (Illustrator-editable PDF, 5.3 MB)
‘high-heels’ photo
- Source: Shutterstock/Picsfive
- Preprocessing: reflection removed and downsampled 1200×923 pixels
- Postprocessing: manual cleanup and snapping of region boundaries
Select image to be shown on the left:
- Input photo (1200×923 pixels)
- Our vectorised result (on light checkerboard, on dark checkerboard)
- Edited vector image (on light checkerboard, on dark checkerboard)
Downloads:
- Input photo (PNG, 0.4 MB)
- Our vectorised result (Adobe Illustrator file with edits in hidden layer, 1.4 MB)
- Our vectorised result (Illustrator-editable PDF, 1.5 MB)
- Edited vector image (Illustrator-editable PDF, 3.9 MB)
‘lens’ photo
- Source: Flickr/Dino Quinzani (CC BY-SA 2.0)
- Preprocessing: downsampled and cropped to 529×529 pixels
Select image to be shown on the left:
- Input photo (529×529 pixels)
- Our vectorised result (on light checkerboard, on dark checkerboard)
Downloads:
- Input photo (JPG, 0.1 MB)
- Our vectorised result (Adobe Illustrator file, 0.5 MB)
- Our vectorised result (Illustrator-editable PDF, 0.5 MB)
‘wine’ photo
- Source: Shutterstock/Dmitri Gristsenko
- Preprocessing: downsampled to 533×800 pixels
Select image to be shown on the left:
- Input photo (533×800 pixels)
- Our vectorised result (on light checkerboard, on dark checkerboard)
- Edited vector image (on light checkerboard, on dark checkerboard)
Downloads:
- Input photo (PNG, 0.1 MB)
- Our vectorised result (Adobe Illustrator file with edits in hidden layer, 0.4 MB)
- Our vectorised result (Illustrator-editable PDF, 0.4 MB)
- Edited vector image (Illustrator-editable PDF, 1.2 MB)
‘hoover’ drawing
- Source: sketch-a-day.com/Spencer Nugent
Select image to be shown on the left:
- Input photo (600×600 pixels)
- Our vectorised result (on light checkerboard, on dark checkerboard)
- Edited vector image (on light checkerboard, on dark checkerboard)
Downloads:
- Input photo (PNG, 0.2 MB)
- Our vectorised result (Adobe Illustrator file with edits in hidden layer, 0.5 MB)
- Our vectorised result (Illustrator-editable PDF, 0.5 MB)
- Edited vector image (Illustrator-editable PDF, 0.5 MB)
‘purair’ drawing
- Source: sketch-a-day.com/Spencer Nugent
Preprocessing: cropped to 280×463 pixels
Select image to be shown on the left:
- Input photo (280×463 pixels)
- Our vectorised result (on light checkerboard, on dark checkerboard)
Downloads:
- Input photo (PNG, 0.1 MB)
- Our vectorised result (Adobe Illustrator file, 0.3 MB)
- Our vectorised result (Illustrator-editable PDF, 0.3 MB)
‘cone’ vector drawing
- Source: own drawing based on tutorial by Jasmina Stanojevic
- Preprocessing: rasterised at resolution 552×436 pixels
- Postprocessing: manual cleanup and snapping of region boundaries
Select image to be shown on the left:
- Input bitmap (552×436 pixels)
- Our vectorised result (on light checkerboard, on dark checkerboard)
Downloads:
- Input bitmap (PNG, 16 KB)
- Our vectorised result (Adobe Illustrator file with input drawing in hidden layer, 0.1 MB)
- Our vectorised result (Illustrator-editable PDF, 0.1 MB)