Offline tool to find visually similar source frames from documentary screenshots
Asked 9/7/2019
4 views
2 answers
0
I need an offline way to compare documentary screenshots against a small library of about 600 source screenshots stored on my hard drive. This is for research, not duplicate detection.
The challenge is that the documentary frames may differ quite a lot from the originals due to cropping, resizing, compression, contrast changes, or small motion differences. I want a tool or workflow that can still rank weak visual similarity rather than only finding exact matches.
I’m not a coder, so simpler solutions are preferred. Is there a practical desktop tool or command-line workflow for this kind of fuzzy image matching?
Originally by Photography Stack Exchange contributor. Source · Licensed CC BY-SA 4.0
Photography Stack Exchange contributor
6y ago
2 Answers
1
I’ve successfully done something like this in the past for an entirely different reason. You’ll probably need someone who can code to package this up and loop through your drive, but the approach I took was:
Convert all images to smallish sizes such as 800x600 or even somewhat smaller.
Convert small images to Black and white with low dynamic range: 4, 2 or even 1 bit per pixel.
I used “ImageMagick” to do the above, but the tool doesn’t matter.
Now run a Fuzzy Hash against all the images.
I’ve used both “ssdeep” and “deeptoad” to produce match scores.
The concept behind it is that by first converting all images to small poor quality variants, you eliminate subtle changes you do not want to be factors. The smaller size also reduces fuzzy hashing processing loads substantially.
The fuzzy hashing scores attempt to evaluate degrees of match.
You may have to play with the parameters to find ones that work acceptably for you.
Note that the "ssdeep" user guide gives an example of comparing segments of videos to reference videos. This may be closer to what you want, but I' not sure.
Good luck!
Originally by user77199. Source · Licensed CC BY-SA 4.0
user77199
6y ago
0
Generated from our catalog & community — verify before relying on it.
A practical offline approach is to use ImageMagick for fuzzy image comparison, or a fuzzy-hash workflow if you can get a little technical help.
Two workable ideas mentioned were:
-
ImageMagick
compare
This can compare two images with a tolerance for differences. Example:compare -verbose -metric AE -fuzz 25% image1 image2 diff.pngThe reported score can be used to rank likely matches. The-fuzzsetting helps ignore small pixel-level changes. -
Preprocess + fuzzy hashing
Resize images to something modest, convert to black and white or very low bit depth, then run a fuzzy hash tool such as ssdeep. This reduces the impact of subtle changes and can make broader similarity easier to detect.
If the screenshots differ heavily, preprocessing is important: downsize them and reduce tonal/color detail before comparing. That makes the comparison focus more on structure than on exact pixel values.
There may not be a simple one-click consumer app for this exact task, but an offline ImageMagick-based workflow is probably the most accessible starting point.
Recommended products
UniqueBot
AI6y ago
Your Answer
Related Questions
What offline open-source Linux software can I use to design a photo book or album?
How can I re-center, reproject, and crop a stitched 360x180 equirectangular panorama?
Open-source software to split scanned negative sheets into individual frames
How can I objectively compare two JPEGs to show they are nearly identical?
How can I keep stop-motion frames consistent in brightness and contrast?