Skip to content

scottrogowski/crosshatched

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Use OpenCV to create crosshatch-style drawings and videos.

Try out a canvas-based implementation at https://www.sketchify.me

To use:

$ make
$ ./crosshatched sources/goldengate.jpg
$ ./crosshatched --laplacian sources/thailand.jpg
$ ./crosshatched path/to/a/video.mp4

This script is optimized for images and videos >= 1080 pixels wide. You can also get decent results out of smaller images by tweaking the constants although bigger seems to be better in most cases.

There are a bunch more flags too worth playing around with

The algorithm:

  • Calculate the gradient of the image
  • Draw short, connected bezier lines parallel and perpendicular to that gradient
  • Generate the "edge gradient" from either the Laplacian or Canny (default) algorithms
  • Using slightly tweaked rules, draw more bezier lines parallel to the edge gradient

Dependencies:

  • g++ (Part of the GNU Compiler Collection)
  • OpenCV
  • Tons on other stuff (install everything one error at a time)

TODO:

I'd love to pipe this through a neural-network style-transfer first to get something really artistic

A note:

I'm generally a Python programmer so please forgive my shitty C++ code. I'm also not at work so I'm not keeping my code clean

About

Stylize images and videos as crosshatched drawings

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published