Since I don't have a copier or scanner, I'm using an 8 megapixel camera to copy documents. This works pretty well except they need a lot of processing afterward. I'd like to get from a photo to a bitmap, but using
djpeg -grayscale -pnm photo.jpg |
pgmtopbm -threshold -value XXX
does not work so well, for two reasons:
-
It's hard to guess what XXX should be, and XXX is different for different photos.
-
Illumination varies, and sometimes a single threshold isn't what's right for the image.
How can I do better? The ideal solution will be fully automatic command-line program that I can run on Linux. (I have already written a program to remove dark pixels from the edges of images.)
NOTE: I really want a bitmap, that's just black and white pixels. No grayscale, no dithering.
Best Answer
-monochrome
This option uses some smart dithering and generates very visible output:
Documentation: http://www.imagemagick.org/Usage/quantize/#monochrome
Compare that to a simpler
-threshold 50
transform:which loses most of the image.
Concrete example from: https://www.nasa.gov/mission_pages/galex/pia15416.html
in.jpg
out.jpg
threshold-50.jpg
Related questions:
Tested in Ubuntu 19.10, ImageMagick 6.9.10.