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.
Could somebody help me with identification of the image processing algorithms used? And the order in which they were used?