I’ve written a camera app which allow users to capture image of paper bills, send to server where it’ll be printed.
Problem:
when I print the image, the background is blackish due to noise in captured image. All I want is a clean white background. I’ve tried Bitmap’s compress method to save the image in JPEG/PNG format on different scales (1-100) but not much helpful. I’ve seen camscanner app doing this fantastically but have no clue how.
Any pointer to achieve this will be helpful.
thanks.
If the issue is some random noise, there are some noise removing filters out there you can use (i.e. median filter or a bilateral filter).
Is the image already binarized (converted to strictly black and white pixels)? You’d want to do the filtering before this.
EDIT(after clarification on dark gray): Since the background is a dark gray I’m guessing the problem is just that it is a low contrast and since it will be a natural image, there will be variation on how bad the contrast is. I suggest using Sauvola binarization for this which will separate out the black and the dark gray to black and white. Here is some detail and example results of Sauvola: http://www.leptonica.com/binarization.html. To run some tests to see which binarization algorithm would be best you can find a library here