Scanner Modifications to Scan Large Documents

Your average consumer scanner works well for scanning normal printed or handwritten documents, usually anything up to Letter or A4 size. For something a bit larger, say Legal or Tabloid size, one can try to scan the document in segments, but the scanner’s lip, which is great for aligning smaller documents, becomes a major hindrance, and one usually resorts to scanning the document using a copy machine if one has access to one. This is fine until one has a document that is too big for a copy machine, e.g. what I wanted to scan—old maps. They’re too big to fit in a scanner or copy machine even if one tried to fit part in at a time; besides, one shouldn’t try that since they’re old and irreplaceable. One could photography them, but one needs a scanning back camera to get anywhere near comparable resolution, which are really expensive. That is where this modification comes in—modifying a low-cost, off-the-shelf consumer scanner to scan arbitrarily large documents in segments, which are then assembled via software.

We start with a Canon LiDE 90 scanner, although any scanner in the Canon LiDE series will do as they’re all similar.

Unmodified Canon LiDE 90 Scanner

First, we need to remove the lid, which can be done without too much effort by pushing on the center of the piece of plastic that connects the lid to the hinge on the scanner. Next, the lip around the scan glass needs to be removed. It is attached with small plastic tabs as well as adhesive near where the control buttons are. Since we won’t be needing this anymore, it’s easiest just to pry this off. With the lid and bezel removed, observe where plastic still sticks up above the scan glass; then, carefully remove the scan glass, and put it in a safe place. Next, using whatever cutting tools seem appropriate, cut away the rest of the plastic that sticks above the glass, being careful not to cut oneself or cut away the plastic that the scan glass rests on. For this, I used a small cut-off wheel and a razor blade. Now replace the scan glass, making sure it is free of dirt and fingerprints. During disassembly, one should have noticed that the back of the bezel piece that was glued to the glass was white; this is for calibration and needs to be replaced by cutting a strip of photo paper the same size. Place the strip of photo paper above where the scan element’s home position is, printable size down. Finally, tape this strip and both end of the glass to the scanner using strips of packing tape.

One is left with a scanner that can lie flush, glass-down on a table.

Modified Scanner Front of Modified Scanner Back of Modified Scanner

To scan large documents using the modified scanner, place the document face-up on a flat surface. Then, place the scanner glass-down on top of the document and scan it in segments, ensuring sufficient overlap between scans.

Scanning a Map in Segments Detail of Scanner on Map

Finally, stitch the scanned segments together. Recommended methods include following a tutorial using Hugin or using a script I wrote to try to automate the process.

Here is a result of the process—a 1915 map of the Homewood area of Baltimore. The map was scanned in 20 segments at 600dpi, resulting in a final image resolution of just under 500 megapixel.

Thank you to Paul Espinosa at the George Peabody Library for letting me scan the map from their collection.

This entry was posted in and tagged , , , , , . Bookmark the permalink.

40 Responses to Scanner Modifications to Scan Large Documents

  1. Pingback: Hacking a flatbed scanner to scan very large documents

  2. Mihai says:

    An excelent idea nicely explained! Thanks!

  3. Marcello says:

    Looks like an awful lot of dust is going to get below the screen and on the sensor strip?

    • Matthew Petroff says:

      It is a concern. I keep the scanner in a bag to help mitigate the risk. The glass is only held on by two strips of tape, so it’s fairly easy to remove and clean.

  4. Pingback: Scan Large Documents | WebBlog

  5. Alexander says:

    My god, this is BRILLIANT. I work in a department where we have VERY large blueprints from decades ago that are falling apart but we absolutely need to keep them for reference… Now we can scan them into a gigantic picture, and then send the origonals off to be put into long term storage.

    I think the only change I am going to make is to seal up between the glass and the mechanical insides. Maybe put a handle on the sides for ease of moving it around.

  6. Pam says:

    Have you seen the FlipPal Mobile scanner? Its battery operated, portable, 4×6 scanner with open back, so that you can use it in a similar fashion, but see where your overlapped sections are. Saves each scan to an SD card. So you don’t have to have it connected to the pc while doing the scanning. Only drawback is the number of scans it would take to do such a large format item. But I’d love to see a full size scanner made the same way. Question on your stitching the images — with a huge document like that, doesn’t it take more processing power on your computer? How do you handle the bigger and bigger file size that is created?

    • Matthew Petroff says:

      As a previous commenter pointed out, HP used to make the Scanjet 4600, which is full-sized with a window. I was able to buy one used off eBay, but it uses plastic instead of glass, so the platen scratches, and it requires external power. It would be great if a company made a full-size bus-powered scanner with a glass platen, but I don’t know of any that do. It does take a large amount of processing power and memory to stitch the scans, but I have a high-end desktop computer, so it isn’t much of an issue for me. It still takes a long time, but it’s automated. Disk space isn’t much of issue as a high quality JPEG of the results is only about 150MB.

  7. Drew says:

    As a newbie to both Python scripts AND Hugin, I have just tried to use your script.
    Apparently I don’t know how to use it – the script returns -11 – but I have no idea what it means!
    Is it meant to be run from within Hugin? This is what I did, after having the images brought into Hugin.

    Sorry, but can you help a noob out here? Tell me how to use the script?

    I have 72 scans making up four sheets of actual paper, and am desperate to make real assembled images!

    • Matthew Petroff says:

      I have no idea where that error is coming from. Normal usage is python img1.jpg img2.jpg img3.jpg imgN.jpg. If it doesn’t work for you, I’d recommend using Hugin and following this tutorial.

  8. Russell says:

    I tried flipping my Epson scanner upside down and it made horrible noises. Do you know what features to look for to ensure that it can scan flipped upside down? Do all Canon LiDE models have this capability?

    • Matthew Petroff says:

      I think it has to do with the weight of the scanning module, but as I haven’t tried it with any other scanners, I’m not sure. All the Canon LiDE models I’ve seen have been built pretty much the same way, so I assume any of them should work.

  9. John says:

    Just finished the modification on a used Lide 90. Sealed edges with tape.
    seems to be working well. I use Photoshop Elements 11 auto stitching
    called auto panorama. I used the interactive mode and worked to
    perfection. I had to scan in my Photoshop 7 because Elements hasn’t
    recognized the scanner yet. Will post more as I scan more.
    Thank you Matthew

  10. Ben says:

    Thanks very much for this script – I was struggling to do this manually in Hugin, failing to understand what I’m doing – now this script pretty much does it all for me.

    However, I have a few cases (I have a collection of about 20 large collage scan sets of this kind that have been hanging on my disk waiting to find a way to put them back together) where the result isn’t quite right. Mostly these are only a matter of cropping too tightly – I’ve also got one case where it’s applying some weird distortion to one of the tiles, presumably because it’s misidentified some control points.

    I can just about manage to deal with the cropping by editing the .pto output by this script to use the original filenames instead of the temp ones, then opening in Hugin and adjusting the cropping. But I’m such a Hugin noob that I’m terrified that I’m doing it wrong (when I use the horizontal scrollbar in the preview window to do it visually, is that distorting it? If I enter numbers in the Stitcher tab of the main window, should I just adjust the crop, or do I need to adjust the canvas size as well, and what about the field of view?)

    Is there an easy way to tweak the script that it crops more conservatively, leaving me to do an exact crop in an ordinary image editor?

    Or failing that, can you give a noob a clue about the right way to edit it in Hugin?

    Also, I assume there’s a reason why the script generates temp files, so will I be introducing distortion by editing the .pto to reference the original files instead? Would I do better to edit the script to store the temp files somewhere they won’t be automatically cleaned up?

    Many thanks in advance for any advice.

    • Matthew Petroff says:

      Using the slider in the preview window adjusts the field of view, which doesn’t distort the image. The crop is Hugin’s auto crop, which doesn’t have adjustable parameters. The script creates temporary files because it distorts the images such that all the control points line up exactly, which can lead to strange artifacts if some of the control points are too far off. The easiest way to edit things before the mosaic is stitched is to add the line input('Press enter to continue...') between lines 141 and 142, which will pause the script just before the stitching process begins, giving you time to edit things.

  11. Chris Helenius says:

    Canoscan LiDE 110 made this a very frustrating project to me, when I did the same half a year ago.

    The white calibration strip has two black marks, one horizontal towards the far end of the scanner, and 3 small marks at the left edge, which I found to be extremely crucial to have the scanner functioning.
    If the marks are gone, the scanner head doesn’t advance very far, and only gives an error that you need to release the lock.

    I even tried to flip the strip around and still display the black marks in another place, but no change.
    The placing is also very crucial, a few millimeters aside and you just get the same error about releasing the lock.

    Interestingly, after the scanner has done its calibration with the green light and started to scan with the normal RGB-light, the scanner happily continues to scan anything even after the strip has been removed.

    I’m using the Canon MP Navigator EX on Windows, could a different driver bypass the calibration somehow?

  12. Pingback: How to Scan Oversize Images with a Flatbed Scanner

  13. Pingback: Scanning Patterns | Ninth and Adams

  14. Shad Butler says:

    Oh no! I’m nearly done removing the plastic sticking up and the scanner head fell out. I can see how most everything goes back together, but I have this yellowish gold ribbon that is no longer attached to the white hanging tab to the right of the metal rectangle on the scanner head facing the back of the scanner. Don’t suppose you can send a detail photo of that area which shows where the gold ribbon attaches?


  15. Shad Butler says:

    Quick update: I *think* I got the scanner head and ribbons back together correctly with the white tabs. I will report back once I can pick up some goo gone (likely tomorrow) to remove some adhesive left by the calibration strip. Once I do that and attach a strip of photo paper I should be able to test and report back.


  16. Shad Butler says:

    Matthew, thank you so much!!

    Out of curiosity do you think matte or gloss photo paper is best for the strip? I need to pick it up.

    As a side note the family will be so happy when I can scan in some 7’x4′ and other large family tree diagrams my late grandfather drew on graphing paper some 15+ years ago. They are aging and will be so nice for family research once digitized.


    • Matthew Petroff says:

      I don’t think it really matters since the paper is attached directly to the glass. If I had to pick one, I’d go with matte as the strip it is replacing isn’t glossy.

  17. Shad Butler says:

    Matthew, I forgot to write back to say that this worked great! Thank you so very much! I’ve been able to preserve some very old family tree’s that my grandfather created in his later years that I didn’t acquire until around 15 years after he had passed.

    So thank you!

  18. Clare Love says:

    Picked up the scanner in a thrift shop for $1.50, followed your tutorial, and it works slick.

  19. Ed Pinnell says:

    I picked up a CanoScan LiDE200 from eBay for a good price and it took awhile to figure out that there is a very small area on the edge of the calibration strip that needs to be black that exists on the plastic strip that I removed for the unit to calibrate. I took care of that with a Sharpie, in case anyone else encounters a similar calibration error.

    But I am having problems with errors in running your code under Win7 x64. When morphing the images (specifically, image 7 of 15), I get a Windows error that the filename or the extension is too long. I realize that you published this a couple of years ago and have since moved on, but can you reveal under what conditions you achieved your success (operating system version, Python version, Hugin version) so that I can try to reproduce that environment?

    Thanks! Great project, by the way!

    • Matthew Petroff says:

      I’ve used it with Windows XP and a couple Linux distros with Python 3.3 and I think Hugin 2013.0.0. I don’t use Windows anymore, so I can’t be of much help for dealing with its command line idiosyncrasies. Sorry.

  20. Ed Pinnell says:

    Hey, you did good! The partial results I’ve been able to achieve from Hugin so far have been superb, significantly better than those from PhotoMerge in Photoshop CC, so I’ll keep trying.

    It’s encouraging to see your name on the Windows builds of the pano tools in Hugin 2013.0.0, so there is no doubt in my mind that your script works.

    I’ll fire up one of my WinXP VMs and give it a whirl. Again, thanks, Matthew!

  21. Will says:

    Thank you for this article!

    Trying this with an LiDE120. Overcame the calibration issues by recreating the strip with black marks in InDesign, printing out to size, and messing around with the placement until it worked.

    At this point I’ve run into a different issue: Scanner works fine when right-side up, but when I flip it upside down and scan, the produced images are just completely black. I tried scanning upside down with one side over the edge of the table (to check that it was still lighting up) and it is… Any ideas as to why these upside down scans are coming out black?

  22. Steve says:

    I’d like one with a larger scanning area so I can reduce the number of scans to save time. What scanner would you recommend to modify for widths of just under 30 inches? Would it be possible to hire you to build me one?

  23. Sal says:

    What program did you use for zooming in/out the map after scanning it?

  24. Alexandra says:

    Thanks Matthew for this tutorial – just looking at Canon LiDe scanners on eBay now – would the 100, 110, 200, or 220 ones work for this modification? I’d like to scan large artworks.

  25. dogo says:

    Wouldn’t the packing tape show up in the scans? I’m trying to do this now. Dust kept getting inside my scanner. I’m not sure a glue gun would work to fill the gap between the glass and the side.

    • Matthew Petroff says:

      The tape goes where the plastic bezel was originally, so it doesn’t appear in the scans. Dust, however, can be a bit of an issue.

  26. Sherry says:

    Thank you so much for this post. I needed a scanner to scan my large paintings. Followed your post and modified a CanoScan Lide 220. It works! It took me a while to get the scanner to work though. The 220 has a calibration strip with 3 dots on one side and a stripe in the center. The replacement strip I had cut out didn’t, of course, so I was getting an error message. What I did was I reused the original calibration strip (yes, it was a bit wrinkly) and tried many times to place it in the right spot. Once the scanner was able to calibrate, it is working fine!

Leave a Reply

Your email address will not be published. Required fields are marked *