Available command line arguments
- Several years ago, I'd search a simple image difference tool with a user friendly GUI, but my googling was unsuccesfull. So I decided to write my own one.
- Why check for image difference ?
- Compression level comparison
- Raytracing parametrization optimisation
- Non regression tests for 3D engine
- Just for fun !!
- DifffImg use OpenCV as backend so it can read and compare 8/16/24/32 bits images without problem but only single channel and RGB image has been take into account, so alpha channel isn't supported.
- Because DiffImg is written with Qt, it runs on Windows and Linux (MacOSX isn't tested yet) and OS/2. It can read basic formats as BMP, PNG, JPG but also Tiff and OpenExR.
- Image difference display : a yellow/red mask can overlay the original/modified images.
- Single/Dual panels mode.
- Statistic computation: Mean error, RMS error and min/max are computed.
- Several metrics can be used for computing image difference.
- Histogram of error.
- "Slideshow" : DiffImg can compare directory of image, so you can switch to the previous/next comparison if you have two folders with the same image list.
- Supported files :DifffImg uses Qt plugins to load images, so by default it can read basic formats as BMP, PNG, JPG and OpenCV supported formats (Tiff, OpenExR).
- Basic batch mode
- Windows XP, Vista, Seven, 8 (with provided installer)
- Linux (with recompilation).
- Mac OSX: why not ? (but not tested)
SourceForge in setup.exe for windows (32 and 64bits) and source archive for other platforms (qmake and cmake configurations included).
Also available in a portable way:
- More translations (help wanted !!)
- MAC OSX effective support (help wanted !!)
- .deb, .rpm, .dmg delivery
- Adding other difference metrics.
- more features ?
If you have suggestions, problems or questions about this tool, you can:
- send me directly a mail at xbee at xbee dot net
- use the SourceForge forum here
- create a ticket on SourceForge (here)
Don't hesitate to send me your creation, I will create a specific gallery for that soon.
If you want to help with translation, you can send me the translated Qt Linguist file (*.ts) or use the Transifex website (you need to create a free account as translator).
If you find this tool helpful and want support its development, you
can pay what you want.
Main Interface with thumbnail view
- The Quit button
- Show the image selector
- Save the image difference.
- Reload the input files
- Select the image displayed in the center panel (source, modified and difference).
- Swith on/off the two panels display.
- Enable/Disable the error overlay on the center panel.
- Show/Hide image comment
- Zoom management
- DiffImg keep in mind all the images found in the input directories and sort them alphabetically. By pressing Next/Previous, DiffImg try to find the same name in the both input directories (if different).
- Display the parameters panel.
- Go to the online help or display informations on DiffImg.
- Original button. You can display the original image in the center panel by clicking on the image. The red rectangle is the current displayed area.
- Modified image button. Same action as the previous one.
- Difference button. Same action as the previous one.
- Gain. You can modify the gain on the displayed image (mainly interesting on difference image).
- Offset. Add a constant value to the image pixel (mainly interesting on difference image).
- Overview (you can pan the current view by clicking & move on it.
- Difference summary
- Difference histogramme
Main interface description
DiffImg have some options available with the command line. Following options are known:
Usage: diffimg [options] [img1 img2]
--help: displays this help.
--reset-config: clear the saved preference parameters.
--list: list all metrics with their parameters..
--batch: batch mode. Differences are computed without GUI and return code is used as result.
--output filename: save difference image. The difference is only saved when the input files aren't strictly identical.
--metric name: metric tag name. Display list of metrics with --list option.
--in name=value: input parameter update.
--threshold name=value:- output parameter used to define comparison batch mode. If you set several threshold parameters, only the last one will be kept.
How to use batch mode:
Example 1: --batch --metric PerChannelMeanMetric img1 img2 : Use of
per channel mean metric
Example 2: --batch --metric PerChannelMetric --threshold ErrorNum=250 img1 img2 : Use of per channel metric and exit with error if pixel with difference number is upper to 250
Example 3: --batch --metric PerceptualMetric --in Gamma=1.8 --in FOV=75 --threshold ErrorNum=250 img1 img2 : Use of perceptual metric with some input parameters set and exit with error if pixel with difference number is upper to 250.