Git Product home page Git Product logo

linedraw's Introduction

linedraw

Convert images to vectorized line drawings for plotters. Alt text

  • Exports polyline-only svg file with optimized stroke order for plotters;
  • Sketchy style powered by Perlin noise;
  • Contour-only or hatch-only modes.

Dependencies

Python 2 or 3, PIL/Pillow, numpy, OpenCV (Optional for better performance)

pip install -r requirements.txt

Usage

Convert an image to line drawing and export .SVG format:

python linedraw.py -i input.jpg -o output.svg

Command specs:

usage: linedraw.py [-h] [-i [INPUT_PATH]] [-o [OUTPUT_PATH]] [-r [RESOLUTION]] [-b] [-nc] [-nh] [--no-cv] [--hatch-size [HATCH_SIZE]] [--contour-simplify [CONTOUR_SIMPLIFY]] [-v]
                   [--save-settings]

Convert image to vectorized line drawing for plotters.

options:
  -h, --help            show this help message and exit
  -i [INPUT_PATH], --input [INPUT_PATH]
                        Input image path
  -o [OUTPUT_PATH], --output [OUTPUT_PATH]
                        Output image path
  -r [RESOLUTION], --resolution [RESOLUTION]
                        Resolution of the output image
  -b, --show-bitmap     Display bitmap preview.
  -nc, --no-contour     Don't draw contours.
  -nh, --no-hatch       Disable hatching.
  --no-cv               Don't use openCV.
  --hatch-size [HATCH_SIZE]
                        Patch size of hatches. eg. 8, 16, 32
  --contour-simplify [CONTOUR_SIMPLIFY]
                        Level of contour simplification. eg. 1, 2, 3
  -v, --visualize       Visualize the output using turtle
  --save-settings       To Save the settings to a json file

Python:

import linedraw

linedraw.argument.resolution = 512  # set arguments
lines = linedraw.sketch("path/to/img.jpg")  # return list of polylines, eg.
# [[(x,y),(x,y),(x,y)],[(x,y),(x,y),...],...]

linedraw.visualize(lines)  # simulates plotter behavior
# draw the lines in order using turtle graphics.

Future Plans

  1. Rasterised Output
  2. GUI for the tool

linedraw's People

Contributors

lingdong- avatar rahulps1000 avatar onraptor avatar

Forkers

andeecollard

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.