Update, June 2014: This has now been implemented as part of MapKnitter, known as MapKnitter Sorter. Please give it a try there.
I'm looking for some easy ways to sort blurry images from crisp ones (and good from bad) for a whole batch of images. My first thought was -- run a quick analysis on each image for blurriness, with a script. But for 2000-4000 images, that takes too long!!
OK, how about this: just look at the filesize! I already noticed that all-black or all-blurry images at the beginning and end of a flight are much smaller JPGs since less detailed photos will compress better. I tried graphing this to see if there's a pattern. My graph is here:
Open source code (messy): https://github.com/jywarren/aerial-image-analytics
My other thought (also graphed) was to use the temperature of the camera, as stored in the EXIF tags -- an idea explored in an older post -- to see if we could calculate the altitude very roughly and trim out all images under a certain threshold -- say a hundred feet or lower. The above graph shows that maybe the temperature system is no good -- it just kept going up and up, and I think that's just because the camera is getting hot in the sun and from running continuously. Jessi even said "the camera's hot" when we took it down after the flight at UMBC's test forest.
So these are just a few ideas but it'd be neat to have a script to quickly dump 1/3 of your images if they're blurry -- for example:
https://mapknitter.org/sorter/ (updated address)
Here are some screenshots of the process:
- Drag all the images into the drop zone:
- They'll be graphed by filename order (x) and file size (y). See how turbulence can create wildly varying filesize... but also consider that if some visually complicated feature enters the scene, that can also create a higher filesize since the image will not compress as well:
- Enter a "cutoff size" in megabytes and press "Apply" to highlight filenames of images above that size: