What is the best way to remove texture from a scanned textured photo paper?

  • I have a bunch of scanned old family photos where the photo paper has a texture. Unfortunately, the texture of the photo scans quite well. What is the best way to remove the texture? (Photoshop CS5)

    enter image description here

    I have just tried the following: copy a small (50x50 px) area of the "white" paper, define a pattern with it, overlay a new layer filled with that pattern, invert the layer, set the blending mode of the new layer to Subtract. By moving the upper layer slightly left/right and up/down you can cancel out some of the pattern. I did not manage to cancel the pattern on the whole image. Maybe you can improve this technique.

    If you use the pattern approach, you really want to make sure the pattern is repeatable. That may mean you have to work it a bit to match up on every edge, which may mean it changes from an exact 50x50. If you can get the pattern to repeat seamlessly, you will probably have better luck.

    I would check out the Adobe Forums for Photoshop, plenty of PS gurus there that can help you. - http://forums.adobe.com/community/photoshop/general

  • The textbook method is, as others mentioned, to suppress the texture in frequency space. I will explain how to find the correct filter, that you can basically do manually in ImageJ (freeware java app). When you open the program it is a strip of menu. The parts you need are:

    • File Open
    • Selection rectangle
    • Edit Crop
    • Process-> FFT -> FFT
    • Process-> FFT -> Inverse FFT
    • Paintbrush (with black color)

    First, load your image. Then select the part that's only white with texture. Do FFT on this crop:


    You now notice a star pattern. This is the pattern to recognize when you open the image again, and do FFT on the whole thing:

    whole fft

    Now, don't remove the center point as that is the "DC" value. Which means the average brightness. Use the paintbrush to eliminate the other stars. Make the black points big enough but not too big (play around with it). If you overdo it, you will get banding around the edges and borders.


    Now do inverse FFT:


    (Note: You need to have the FFT image window selected when you try to do the inverse FFT. If you have the original image window selected, you'll get an error saying "Frequency domain image required".)

    And if you can do this at higher resolution than you need, you can downsize the image with lanczos resampling for an even better result:

    scale down

    If you know some scripting or programming you could impose this elimination pattern automatically on an entire set.

    It's probably a good idea to also black out the other regularly spaced dots in the FFT that are clearly extensions of the central pattern (and correspond to its higher harmonics).

    It's a delicate procedure. you risk adding ringing effects, so that's why I keep the edit to a minimum wiht this inaccurate mouse click based edit. To the user who got an error in the procedure: make sure the correct window is selected when doing the inverse fft.

    For ubuntu 16.04. its easy to install: `apt install imagej`.

    For todays pictures and scans the default memory (500 MB) may not suffice. On 64-Bit machines you may give ImageJ the maximal Memory of 4GB to run not out of memory via: `imagej -x4000`. More memory seems not possible, cf. https://imagej.nih.gov/ij/docs/install/linux.html

    You can do that in Photoshop using Fixel FFT Wizard. Much easier then ImageJ.

    GIMP does the FFT thing automatically using the G'MIC plugin. Select "GMIC" in Filter and then look for "Unstrip" in "Repair".

License under CC-BY-SA with attribution

Content dated before 7/24/2021 11:53 AM