Skip to content

SSARCandy/Coherent-Line-Drawing

Repository files navigation

Coherent Line Drawing

C/C++ CI Build Status codecov License: MIT

This project implemented a non-photorealistic rendering technique presented by Kang et al, that can automatically generates a line drawing from a photograph. This project provide an easy-to-use, real-time interactive graphic user interface system.

demo

Workflow (Youtube)

Coherent Line Drawing

Build

Requirement

  • C++ 17
  • CMake
  • OpenCV 3
  • WxWidget 3 (not required for cmd application)
  • Boost (not required for gui application)

If you prefer C++ 11 version, there is a branch called cpp11, the function is equivalent.

It should work fine in Windows/Linux/MacOS.
I provided some scripts that can use in Linux:

# Usage: build.sh [options] # Options: # -c, --clean Clean build # -d, --debug Build with debug mode # -j, --jobs Use N cores to build $ ./build.sh # Usage: linter.sh [options] # Check code style # Options: # -i In-place format $ ./linter.sh

Command Line Version

I provide another command line application that can directly use without graphic interface, the entry point is src/cmd.cpp. The options is list as following, also you can refer to ./test.sh to see how to use:

# Coherent-Line-Drawing Options: # -h [ --help ] Help message # -s [ --src ] arg Source image path # -o [ --output ] arg Output image path # --ETF_kernel arg (=5) ETF kernel size # --ETF_iter arg (=1) Refining n times ETF # --CLD_iter arg (=1) Iterate n times FDoG # --sigma_c arg (=1) Line width # --sigma_m arg (=3) Degree of coherence # --rho arg (=0.997) Noise # --tau arg (=0.8) Thresholding

Pre-Build GUI Version

You can download pre-build version at here.
Including Windows and macOS versions.

Screenshots

demo demo demo