This simple script will take a picture of a whiteboard and use parts of the ImageMagick library with sane defaults to clean it up tremendously.
The script is here:
#!/bin/bash
convert "$1" -morphology Convolve DoG:15,100,0 -negate -normalize -blur 0x1 -channel RBG -level 60%,91%,0.1 "$2"
Here are some of the input images:
And here are the results:
Assuming it's saved as a file named whiteboardClean.sh
, the command is ./whiteboardClean.sh {name of input file} {name of file to output to}
.
Here's an example:
./whiteboardClean.sh example1.jpg output1.png
I was doing a lot work with whiteboards and I'd been taking pictures of them to document what had been written. I wanted a more clean version of the pictures though, something that captured the essence of what a whiteboard image showed.
Eventually I found this excellent guide to cleaning up whiteboard photos using GIMP. However, I found I wanted more automation. So, I spent a few hours yesterday figuring out how to do the same thing using ImageMagick from the command line and made this script.
@lelandbatey Good job, bro!
If you guys want to convert that output png to a svg vector format, you can use AutoTrace to archive this.
I'm currently using the following command with these options, if you find a better solution, please post it here :)
in.png
out.svg