Yes! This is probably possible in any image manipulation program, but I have found that the Wolfram Mathematica software is a very powerful tool for this sort of work. A home use licence costs $A295
The trick is first, to line them up correctly by cropping the right number of pixels from each side, using repeated applications of the ImageCrop
function. I haven't found a way other than trial and error to do this.
To get rid of the bleed through on one page, you want to make a mirror image of the other page, and then remove things that are dark on the flipped page and lighter on the target page, and similarly keep things that are darker on the target page than the flipped page. Here's the flipped page:
page17cropflip = ImageReflect[page17crop, Left]
There are a few different things to try, including to Blur
the target page so that the text is a bit darker. Here was the set of commands that worked tolerably well in this case (it looks better at full size):
With[{brightness = -0.3`, contrast = 0, final = 0.903`,
highbleed = 0.159`, lowbleed = 0.221`, method = "Cluster"},
Binarize[ImageAdjust[
ImageClip[
ImageAdd[Blur[page18crop, 3],
ImageClip[page17cropflip, {lowbleed, lowbleed + highbleed}]], {0,
final}], {contrast, brightness}], Method -> method]]
There's a lot of technical detail here but the main command is ImageAdd
, which "adds" the two images and thus tends to lighten and cancel out things that are lighter in the flipped image. ImageClip
just adjusts the range of shades of gray that are allowed in each image, so that the bleed-through text fades out. There are probably better combinations of commands, but this worked in this instance, and a slightly simpler version worked for the first original image (i.e. blanking out the second).