Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Graphics Software

Scanning Large Amounts of Pictures? 72

ClintJCL asks: "My wife & I are involved in scanning every photo I've ever taken in my life. She can lay down 4 or 5 pictures into the flatbed scanner at once, thereby saving the scanning time which is the bottleneck. But then she has to split them with Photoshop, which is also somewhat time-consuming. I've searched on the net for hours for a piece of software that would automatically split these 'Batch image scans' into single images and it just doesn't seem to exist. There are plenty of pieces of software to split a single image arbitrarily into sections for the purpose of loading faster on an HTML page (which I disagree with anyway and is not what I'm looking for). But -nothing- that seems to do any sort of edge-detection to determine what pictures exist in a given 'scan batch'. I'm out of resources. I've nowhere else to go. Perhaps someone can clue me in on a piece of software that can do this for me."
This discussion has been archived. No new comments can be posted.

Scanning Large Amounts of Pictures?

Comments Filter:
  • Sounds like it's time to bust out your favorite compiler...

    The start of any great open source project is a useful idea. :)
    anybody up for the challenge?
  • be a hacker (Score:3, Insightful)

    by photon317 ( 208409 ) on Wednesday September 18, 2002 @07:19PM (#4285394)

    Finding the image edges from her bulk scans is one of the more trivial operations you can do on an image. Grab a handy-dandy image library for your chosen format (pnglib, jpeg, whatever) and write a couple pages of code and you're done. GPL it and help others with the same problem.
  • Coincidence (Score:3, Interesting)

    by Henry V .009 ( 518000 ) on Wednesday September 18, 2002 @07:23PM (#4285407) Journal
    I was asked just yesterday to find something very much like this (except for some text processing and databasing thrown in). I haven't found anything out of the box that fits (not that I was smart enough to do an ask slashdot on it), so I think that I may have to code my own in the next week. Are you willing to pay a little cash for a custom solution?
  • You should be able to instruct your scanner software to see arbitrarily many fields in the "preview" stage... you select each photo with a marquee tool, and then you can give instructions unique to each photo, such as rotate 90 Degrees, color depth, and so on. If your scanner software can't do this, get better scanner software or a better scanner; its an elementary feature and you shouldn't have to pay much for it.
  • into piles of same sized pictures, and then having a photoshop action that crops to a and saves them acordingly.
  • by Evro ( 18923 ) <evandhoffman@NosPAm.gmail.com> on Wednesday September 18, 2002 @07:40PM (#4285501) Homepage Journal
    It's been quite a while since I scanned anything, but I remember that with whatever scanner I was using at the time, in Photoshop you would do file->acquire->twain and it would bring up the scanning program. This program scanned the image lightly as a preview, and then let you select however many "jobs" you wanted at once, so you could select 1 square as job 1, another as job 2, another as job 3. Then it would make one pass and generate an image for each job.

    As I said, this was a while ago and I don't remember the scanner, but it was probably some UMAX. The name "Mira scanner" stands out in my mind as the scanning software. You scanner may have this capability also; poke around a bit.
    • I have a cheap Acer 320 USB scanner that also uses the MiraScan

      it does a nice batch job, sending all of the diferent "jobs" to photoshop as a seperate file,

      I discovered it when I accidently selected job 2, and I kept sending 2 files to Photoshop, lol
    • We had the same thing with our Microtek E3 scanner; it'd only let you select one region at a time, but you could drag the same size region around, so we'd just put the pictures in the same corners each time and drag the region box to each corner for each job. Slightly less tedious.

      Beyond that, all we had was paitence. :)
  • 1) Most of your pictures are standard size, right? Come up with a grid to lay them on your scanner. Stick to that grid.

    2) get ppm tools (bunch of image manipulation programs callable from command line or scripts).
    I assume you have access to a UNIX/Linux command line, huh? :)

    3) Find the tool which makes cuts from larger image, write a four line script to automatically cut out, say, all four corners of your large scan.

    4) Run another script to apply "aggressive crop" to cut out any remaining white margins (you did not place original photos too close to each other on step one, right?)

    5) Burn that CD!

    Paul B.
  • hardware solution? (Score:2, Interesting)

    by Brewst3r ( 608141 )
    Why not get a automatic document feeder for the scanner?
    • Where can I get one? Could you recommend a brand please?
      • I have not checked ebay today, but on the rare
        occasion that I did, I did not see any in the
        $200 or less range.

        At this point I wouldn't mind a build-it-yourself
        kit with a web-page for instructions!

        Like the original poster, I've had this same task
        for a long time. My 600 dpi flatbed scanner is
        a trooper for sure, but 4 pictures at a time is
        still too cumbersome a process. I have about
        2000 photos with no negatives which are my
        "older" photos that I am interested in digitizing.
        I also have a zillion or so negatives from
        this century and the preceding decade. But those
        older pictures are more interesting by far.

        It's been too long to accurately date many of them
        now. I came across two of the WTC recently. But
        having them as separate files seems like it should
        be a little more manageable than several shoeboxes
        of photos.

        I tried to get my grade-school aged nephew to
        spend some of his afternoons scanning them in,
        at a rate of $0.25/photo. He scanned a total of
        about 50 pictures (with my equipment) then gave
        up after several months.

        I'm in the same boat as the original poster. I
        would like some help finding a solution here. I
        would have thought a 1/3rd size scanner with a
        simple roller/sheet feeder (er, photo feeder) would
        have been a super easy device to manufacture.
        Why are these devices so hard to find?
    • I need a job and money.

      I was hoping for freeware.

      Man this world is cruel.
  • Why not just set up a Photoshop action to make 6 copies of the current image and set the action to crop each to an individual image. I don't know if you can script the name to save under automatically, but even if you can't you can just set up the actions to work on 10 or so original images and say to specific filenames and then just batch rename between scanning batches.
  • Why use files? (Score:1, Offtopic)

    by fm6 ( 162816 )
    You're assuming the next step is to split the composite image into individual image files. Not necessarily. If I were doing this, I'd just select the images, one at a time, and copy them into the clipboard.

    What? You say your clipboard only holds one image? Not if you're using a clipboard extender. I use Clipmate [thornsoft.com], though you might prefer one that's specially oriented towards handling graphics.

    • So then you've got 400 clipboards. What's your next step if you're not going to save it to individual files?

      Not to troll, just wondering where you're going with this.
      • You can create individual files when you need to. But when do you need to? Browsing through them? Printing them out? You don't need them in individual files for that.

        It is useful to have individual files to share with other people. But these might not be the same files you originally captured. You'd probably scan in the photos at the highest resolution and color depth your scanner can do. But when you attach an image to an email, you probably need to step it down a bit.

        Anyway, you just have to have some kind of organizing software, if you've got so many photos that optimizing scanner time becomes an issue. If I were designing software that did this, I'd use a database, like the biolife example [borland.com] that comes with Delphi and Kylix. But now that I look at what's available, I see that most apps do store images as individual files [axialis.com].

        Still, the principles the same. A good organizer can capture new images from your clipboard. So the procedure works out like this:

        1. Set organizer to automatically capture from clipboard.
        2. Place a bunch of images on the scanner.
        3. Scan. (This is the time-consuming part we need to minimize.)
        4. Drag a rectangle around an image, and click "copy".
        5. Repeat previous step for all images we just scanned.
        6. Go to step 2.
        I guess that is a little less efficient than software that recognizes all the image boundaries. But the slight extra effort might not be as hard as finding software with the right kind of boundary recognition feature.
  • by acomj ( 20611 ) on Wednesday September 18, 2002 @08:04PM (#4285609) Homepage
    I have a higher end scanner (powerlook 3000) It allows you to do multiple scans in one pass.
    ie you preview
    you box all the pictures
    you click scan

    you can adjust each box color/exposure separate.
    it scans each image as a separate file. Of course you have to preview each image which takes times.

    You could write some software to do it. It might help to use a background matt of a consistant color though.

    I think you really should consider scaning only images you care about and adjusting each one individually. If you really care about your images get a negative scanner. Scanning negatives is far far fat better than scanning prints.
  • Just to verify what other have been saying about typical scanner software:

    I haven't run into a scanner that didn't let you define jobs or a batch scan feature. Everything from an HP SCSI monster 8 years ago, to a slick new USB scanner, to my $35 UBid special Mustek parallel scanner. It is a pretty basic feature.

    Just check through the TWAIN interface and look for something involving batch scanning. Just out of curiosity, did you buy your copy of Photoshop? Or are you using a "lite" version that came with the scanner? I just ask because GIMP has given me all the tools I've ever needed.

    Yet again, an Ask Slashdot question appears to be a stumper, but really is something that a tech support operator (or small child) should deal with.
  • by edthemonkey ( 136946 ) <dave@eightf[ ].com ['ace' in gap]> on Wednesday September 18, 2002 @08:15PM (#4285660) Homepage
    Photoshop should be just fine for what you want to do.

    There should be a pallete around that lets you create actions. You basically hit the record button and go through the steps you want to do. Map that to a keystroke and voila.

    When selecting the picture, you could even used a fixed width box, so all of the pictures will have the same dimensions. For the action, you could have it copy what you've selected, create a new image and paste the selection into it. Then have it merge layers and auto-adjust the levels/contrast and then have it bring up the save dialog box.

    All you're really left doing is scanning the set of pictures, clicking the mouse once (for the fixed width box), hitting the keystroke and then typing in the name of the file.
  • by blackcoot ( 124938 ) on Wednesday September 18, 2002 @08:50PM (#4285764)
    The solution to this problem should be fairly easy (this doesn't mean non-trivial) to implement, assuming that a couple conditions hold:
    1. The border around every image shows a high contrast against the scanner background (which is usually white). This shouldn't be too much of a problem, unless you take lots of pictures of very light things.
    2. Your photographs are rectangular. This may sound silly, but it's a lot easier to find a rectangle than some arbitrary n-gon.
    3. Your photographs are placed so that edges of the photograph run parallel to the bed (i.e. you put the pictures down squarely)
    If (1), (2) and (3) hold, then implementing this shouldn't be too bad --- I would use this algorithm:
    1. take a scan of the background of the scanner (i.e. hit the scan button with no pictures on the bed) and remember this background image
    2. for each image in the input set
      1. perform edge detection
      2. use a Hough transform to detect lines in the edge map
      3. calculate the difference image D. If B[k](i,j) is the value of the k color band at pixel (i,j) in the background image and F[k](i,j) is the value of the k color band at pixel (i,j), then D(i,j) = max(abs(F[r](i,j)-B[r](i,j)),abs(F[g](i,j)-B[g](i, j)),abs(F[b](i,j)-B[b](i,j))
      4. divide the difference image and the input image into rectangular regions using the lines that were detected with the Hough transform. For each region, calculate the average difference; if this value is large enough (i.e. over ~ 8-16), then consider that region to be a picture, otherwise it's blank space.
    Intel's OpenCV library (look it up at SourceForge) can do most of the "tough" stuff for you (i.e. the edge detection and the Hough Transform). Hope this helps :-)
  • You probably want to right a script to do:
    (1) scan the composite image,
    (2) copy 4 rectangular regions into 4 new images.
    (3) save 4 images as imagename_[1,2,3,4].png

    You could then go back and crop to perfection afterwards. There are with filehandling in ScriptFu (Gimp) but maybe the PhotoShop scripting can handle this kind of thing.
  • Get some chop sticks or other small stick, tape a grid appropriate to the pictures your scanning onto the scanner. THe goal is that you should be able to drop a picture into each spot and have it constrained. THen get the convert command from Imagemagick and use the
    -crop widthxheight +-xoffset +- yoffset
    or somthing like that. Figure out what it should be for the tapped down grid, and make it a script to auto slice all your scanned images.

    t.


    • This is almost exactly what I was about to suggest, except that I would use string taped down at the edges (& pulled tight) instead of sticks. Why? It makes it easier to remove the pictures afterwards. You'll probably want to do the following:
      1. Measure & make light pen marks on the sides/ends of the scanner where you want the strings to be (in case you have to replace them).
      2. Tape the strings down, but not too tightly.
      3. Tape two strips of wood (e.g. rulers) along two adjacent edges, over the strings.
      4. Lap the strings over & tape them to the top of the wood.
      5. Do the same on the other two edges, this time pulling the strings tight enough to "snap"

      Make a point to check that your strings haven't moved every hundred scans or so, and periodically check the cut images as well, just to save yourself from plunging ahead with a miscalibrated setup.

      -- MarkusQ

      • How about a thin piece of glass with a grid made from black pinstripe tape - sandwitch the pictures between the glass and a piece of cardboard (or similar material), then place the sandwitch on the scanner, and scan - use software to pull the images based on coordinate or edge detection (detecting the grid)...
        • The problem with this is that the glass would move the picture away from the scanner element, which would cause the image to be out of focus. Even the thickness of a thin sheet of glass would most likely be enough to bring the image out of focus.

          The best way to do this is to sort the pictures by size, and put, say, 3 4x6 photos on the bed at once, all landscape. Tell the scanner to scan 7200 pixels high, 3600 pixels wide, and save all the 4x6 images this way. Now, use image manipulation programs (there are some programs that are commandline based for resizing, cropping, etc) to write a script that divides each image into 3 images 2400 pixels high each, save them with auto-numbered filenames, and delete the 3 picture images. Open the whole folder in xv or something, and go thru each photo with next, rotating as nescisary.

          • Maybe, maybe not - I thought about this when I posted, that it would be out of focus, but many scanners actually have good focus up to about an inch away from the surface. I am not saying perfect, obviously if you move away from the surface it will be worse, but if you scan at a high enough res, when you reduce the res (why would you want ultra-high res - storage would be tougher, and you would start to pick up the grain of the photo), what little focus issue there is wouldn't matter.

            That said, I do like your idea, it is the most logical thing to do - but I was trying to think up some way that photos could be loaded quickly off-bed as one set is scanning, so that you could scan/swap/load/swap/scan/swap, etc...

            One thing that I want to build or buy is a backlight for my scanner for negatives/slides. However, this need is becoming less and less as I use my cheapo digital camera...

  • Nikon makes nice badass batch scanners for slides and negatives, and they may make some for normal prints. If they don't, try getting a small fast scanner that you can slide images through, so you can just scan 20-30 in a row, and not have to seperate them.
  • hello dr. pat i am looking for communicative chats have i found it?!!!
  • Scratch the itch (Score:3, Interesting)

    by Smack ( 977 ) on Wednesday September 18, 2002 @10:46PM (#4286197) Homepage
    Of course there are ways to do this on Windows. But it's hard to believe that no one has yet implemented it the unix way. There should be a utility where you type "picsplit *.jpg", and you get a directory of split files, sequentially numbered.

    Programmers are always looking for projects, this sounds like a relatively easy one.
  • Most slide and negative scanners will do automatic image splitting for you. I have the attatchment for my Epson flatbed scanner that does slides and negatives and i can easily scan 4-6 all at once and they will each come up as seperate files. You can then make actions to do certain things (auto levels etc) to them and make them a certain heighth or width
  • Comment removed (Score:3, Interesting)

    by account_deleted ( 4530225 ) on Thursday September 19, 2002 @12:55AM (#4286739)
    Comment removed based on user account deletion
  • Scan the negatives (Score:2, Interesting)

    by debugdave ( 153189 )
    Why don't you just scan the negatives? (that is if you still have them) It would be more economical than spending the next 2 years chopping up 8"x10"x150dpi.

    Just a thought.

    Dave
  • Where possible, you should re-shoot some of your homemade porn with a digital camera...
  • VueScan [hamrick.com] from Hamrick software supports this. There is a Linux, Windows and Mac (9 & 10) version available. I have been using this with my film scanner for quite a while. Work great. Not free, but not expensive either and updates come out very frequently, adding support for new scanners and new features.

    From the manual:

    Scan multiple photos, slides, film strips at once on a flatbed

    VueScan provides a feature that allows you to scan multiple photos, slides or film strips in a single pass of your scanner. Lay the prints or slides on the scanner bed in a grid, edge to edge, then use the "Device|X/Y images" and "Device|X/Y spacing" options. From a single scan, VueScan will produce multiple files, all cropped and color balanced automatically.

    • PLease mod up parent, it sounds like the best solution for a non-techie.

      I figured an out of the box solution existed since most OCR software does this automatically when you scan page of mixed text and images, it will block out the page into sections to be OCR'd and images to be jpg compressed. I know Adobe Acrobat's scanning version is pretty good at this and let's you pre-define the default compression for the images.

    • Unfortunately it doesn't support parallel port scanners like the one we are using. No money.. No job.. Gotta make do with manual cropping I guess. ): thanks!
  • How about using transparancy markers to mark off where you'll plonk down the pictures, then calibrate a script to snip/rotate/whatever the pieces?

    wonk!
  • I've never done any graphics programming, but my ignorant approach would start by backing the photos with a unique color. Assuming that color is "unique enough" (and scans as such, ignoring variances in the background medium's texture), one should be able to extract the images with greater ease and speed.
  • First, scanning negatives with a film scanner will give you better results, but you state that you're poor, so that's out.

    Second, you can split the image files from the scanner by size. This would require that you setup the photos that you scan groups of photos that are all the same size together, and get them placed in the same place on the scanner. Even then, you'd end up with either some white space around the photos, or they'd be cropped a tiny bit.

    The third option (the one I think you had in mind) is image processing. pnmcrop (http://netpbm.sourceforge.net/doc/pnmcrop.html) will crop off the white or black border around a photo, but probably won't handle 4 photos at once. If you can fit your 4 photos within 4 static boxes, you can crop to those boxes by size, then use pnmcrop to chop off the extra white border.
  • this is an interesting problem, and since I've got GIMP installed and know a bit of Lisp (similiar to the Scheme that "Script-Fu" uses) I'm going to try and see what I can do using gimp's built-in functions. i'll set up a page at www.parseerror.com/split/ with my progress. i wouldn't gamble on when i'll have something worth using, but hey, you never know. i'll post back to this thread if i make any major break-throughs.
    • Can you make it portable to windows? Well.. I do have access to a shell account. I could ftp to it, split, ftp back down, it would be less time than cropping manually. I've bookmarked your page! :)
      • There is a version of GIMP for Windows. Do a Google search for GIMP Windows, and you should find it. The GIMP is a very nice program. It is not as stable under Windows as it is under Linux, but it is comparable with Photoshop. From what I can tell, it is quite a bit harder to use, but a LOT more extensible than Photoshop. Of course, it is Open Source, so you can extend it however much you want hehe.
  • notes:1) i don't work for cerious sw. 2)had no sleep in a day so post is a bit fuzzy. I am sysadmin at a scanning company. We run in to this a lot. For dividing the pics, use thumbs plus and make a batch process for it. You'll need the same # of batch processes (5 i think in this case, 1 per photo). you can link the batches together. Yeah, i know.. its slashdot and i'm recommending a really kick butt (but )windows app. It is worth every penny though. You can use the auto crop feature after they are divided. Sometimes it flakes so write the output file to a different directory. I strongly suggest using a template for laying the photos on the scan bed. A matte board cutter is a handy thing for this and gives you a colored border. Lay out the template so many corners meet at the top/center. This will allow for quick manual cropping later if necessary and make it easy to divide the pix. To help further, sort your pix by size then you can get a pre- programmed crop to work better. We did (on flatbeds) over 100,000 pics of children from other countries this way. Other countries have interesting film sizes. thumbs makes it very easy to crop and deskew a large # of pics. BTW; the new fujitsu color scanner is pretty nice for photos in batch mode. it cannot compare to flatbed, but it can feed 100 photos in a few mins. at 600dpi. I would equate its 600dpi to a flatbed 300dpi, and a bit blurry. Hope this helps! -erics
  • The most painless, and least fuss route is to simply have a service bureau do it for you. Just provide them with the negs as they've got the equipment to handle massive batch scanning jobs.
  • Debabelizer [equilibrium.com] is the way to go. Check it out.
    Now if only I could get my file cabinets organized that easily. * Sigh *
    Rustin
  • The Canon N670U flatbed scanner I have will scan multiple pictures and automatically crop them. I tried it once, and seemed to work ok. YMMV.

    the pictures were scanned at 300 DPI by default. I'm not sure how configurable the settings are.
    The process was more time consuming, as the computer had to analyze and crop the images.
    • Here's a copy and paste from the help:

      Multi-Photo Mode is a function used when scanning more than 2 photos with a single operation, and makes the scanned images appear individually in a new window.
      If you place the photo obliquely, this function will make the adjustment automatically.

      Operations

      1. Place the photos on the scanner platen.
      2. Start ScanGear CS-U.
      3. In the ScanGear CS-U Simple Mode Main window, click the [Multi-Photo Mode] button.
      4. [Multi-Photo Mode] wizard appears. Click the [Next] button.
      5. After pre-scanning, croppings are performed automatically the same number times with the number of photos. During these procedures, do not open the document cover.
      6. When the Multi-Photo Mode scanning is finished, the ScanGear CS-U main window appears. Click the close box to close ScanGear CS-U.

      7. In the application software, the scanned images are opened. Save the images after adjustment if needed.

      Placing the Photos

      With the Multi-Photo Mode function, the gap between photos is detected using the rear white background of the document cover.

      When you place the photos on the platen, note the followings;

      Keep more than 1 centimeter between the photos.
      Keep more than 1 centimeter between the photos and the edges of the platen.
      With a photo that appears whitish overall, or around edges, this function will not work correctly.
      With items other than photos, especially printed or manuscripted matter on white paper (documents or business cards), this function will not work correctly.
      You may place the photos either vertically or horizontally and diagonally.

      Up to 10 photos can be processed.
      In the platen, the width of the letter size (215.9 mm) and the height of A4 size (297 mm) is processed.

      Miscellaneous

      Also note that, if ScanGear CS-U is launched from the application that cannot open 2 or more images at a time, an image on the entire platen is send to the application, when using the [Multi-Photo Mode] function.

      ScanGear CS-U 6.2 (hereafter ScanGear CS-U) is a TWAIN-compliant scanner driver that communicates with and retrieves images from a Canon scanner connected via USB interface. ScanGear CS-U is designed to run under Windows Me, Windows 98 and Windows 2000 Professional, and can be used with the following scanners:

      CanoScan N670U/N676U
      CanoScan N1240U

      ScanGear CS-U, however, is much more than just a scanner driver because it also provides many functions for adjusting and enhancing images. With Canon ScanGear CS-U driver you can:

      Scan in Simple Mode, which allows you to set up a scanning job quickly, or scan in Advanced Mode which provides more options for setting up a professional scanning job.
      Adjust image brightness and contrast
      Adjust image tone quality
      Invert image colors and create negative images
      Rotate an image
      Crop part of the image in the Preview Area for scanning
      Set ScanGear CS-U to display the image from the previous session every time you open ScanGear CS-U

      Set ScanGear CS-U to scan immediately the original on the scanner every time you open ScanGear CS-U.

Friction is a drag.

Working...