raster-retrace

Crates.ioraster-retrace
lib.rsraster-retrace
version0.1.2
sourcesrc
created_at2017-05-15 00:07:15.734688
updated_at2017-10-29 05:13:55.674127
descriptionImage tracing utility, (performed using bezier curve fitting).
homepagehttps://github.com/ideasman42/raster-retrace
repositoryhttps://github.com/ideasman42/raster-retrace
max_upload_size
id14620
size1,218,847
Campbell Barton (ideasman42)

documentation

README


Raster Retrace


Image tracing utility.

Feature Set

  • Curve (re)fitting, using an iterative simplification algorithm: see curve-fit-nd <https://github.com/ideasman42/curve-fit-nd>__ library.
  • Black and white image tracing.
  • Corner detection (with angle threshold).
  • SVG vector output.

.. note::

This is an initial release, currently this tool works but only loads PPM images and writes out SVG.

Support for other image formats is planned.

Examples

Examples below use TANGENT and PIXEL passes to show the curve fit.

.. figure:: https://cloud.githubusercontent.com/assets/1869379/26520327/6cead016-4313-11e7-9a98-1ec17fdb5a23.png :target: https://github.com/ideasman42/raster-retrace-samples/blob/master/output/tauro_2_only_bull.svg

.. figure:: https://cloud.githubusercontent.com/assets/1869379/26520404/42cfb506-4315-11e7-9f76-a83edb73f868.png :target: https://github.com/ideasman42/raster-retrace-samples/blob/master/output/tauro_2.svg

.. figure:: https://cloud.githubusercontent.com/assets/1869379/26520321/6049d294-4313-11e7-82a8-9c29e40c3b43.png :target: https://github.com/ideasman42/raster-retrace-samples/blob/master/output/jacqueline_face_i.svg

.. figure:: https://cloud.githubusercontent.com/assets/1869379/26520354/1bd0f858-4314-11e7-9f78-604d0fab5f5d.png :target: https://github.com/ideasman42/raster-retrace-samples/blob/master/output/blob_simple.svg

.. figure:: https://cloud.githubusercontent.com/assets/1869379/26520322/62e16620-4313-11e7-9a2f-550c015776ee.png :target: https://github.com/ideasman42/raster-retrace-samples/blob/master/output/old_guitarist.svg

Usage

.. Output of '--help'

:: Bitmap image tracing utility

Options: -h, --help Print help text

File Options:

   -i, --input FILEPATH   The file path to use for input
   -o, --output FILEPATH  The file path to use for writing

Tracing Behavior:

   -m, --mode MODE          The method used for tracing the image in [OUTLINE, CENTER], (defaults to OUTLINE).
   -z, --turnpolicy POLICY  Method for extracting outlines [BLACK, WHITE, MAJORITY, MINORITY], (defaults to MAJORITY).

Curve Evaluation Options:

   Parameters controlling curve evaluation behavior.

   -e, --error PIXELS      The error threshold (defaults to 1.0)
   -t, --simplify PIXELS   Simplify polygon before fitting (defaults to 2.0)
   -c, --corner DEGREES    The corner threshold (`pi` or greater to disable, defaults to 30.0)
   --optimize-exhaustive   When passed, perform exhaustive curve fitting (can be slow!)

Output Options:

   Generic options for output (format agnostic).

   -s, --scale SCALE    Scale for output, (defaults to 1).
   -p, --passes PASSES  Write extra debug graphics, comma separated list of passes including [PIXEL, PRE_FIT, TANGENT], (defaults to []).
   --pass-scale SCALE   Scale graphic details used in some debug passes, (defaults to 1).

TODO

While the basics work, currently there are areas for improvement.

  • Support for multiple image formats (most likely using the piston crate).
  • Improve bitmap outline extraction method.
  • Improve center-line extraction method.
Commit count: 25

cargo fmt