Scanning image from prints comes with several specific problems. Correcting them is essential to get the image close as possible to the original material.
The first and most visible problem is the addition of a moiré pattern to the image. It is caused during the scanning process by the interference between two sets of fine grids. The second is to have a coherent result between scans (contrast, sharpness, etc.) Finally, the compatibility issue with OpenCV and high-resolution 16-bit images is to consider.
Removing the moiré pattern, also called descreening, can be performed using Fourier space and removing frequency peaks. In addition, it is possible to use a low-pass filter for a smoother result. Then we develop an algorithm to automatically detect the blur level in an image and correct it to a given level using an unsharpening mask. We also use Scikit-image to compensate for the inability of OpenCV to work with more than 8-bit images for specific algorithms.