DiffImg

  • Created by xbee on Jan 12, 2012
  • Last update by xbee on Mar 02, 2014










Presentation
Current features
Supported platforms
Limitations
Downloads
Todo list
Contacts
Support
Snapshots
Usage
Available command line arguments

Presentation

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. 
DiffImg is a simple image comparison tool which take two images with the same size as input. Some statitics are computed and the positions where pixel differ are displayed as a color mask.
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.

Current Features

  • 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

Current Supported Plaforms

  • Windows XP, Vista, Seven, 8 (with provided installer)
  • Linux (with recompilation).
  • OS/2.
  • Mac OSX: why not ? (but not tested)

Known limitations

Mac OSX will works with some corrections in the building files but the author hasn't the ability to test this configuration (Help wanted !!).

Downloads

DiffImg is available on SourceForge in setup.exe for windows (32 and 64bits) and source archive for other platforms (qmake and cmake configurations included).

DiffImg review

Also available in a portable way:

at WinPenPack.com

at PortableApps.com

Todo list

  • More translations (help wanted !!)
  • MAC OSX effective support (help wanted !!)
  • .deb, .rpm, .dmg delivery
  • Adding other difference metrics.
  • more features ?

Contacts

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).

Support

If you find this tool helpful and want support its development, you can pay what you want.

your donation


Snapshots

Main Interface



Main Interface with thumbnail view



Difference panel

Usage

DiffImg is quite straightforward to use. The main interface  is described below:

  1. The Quit button
  2. Show the image selector
  3. Save the image difference.
  4. Reload the input files
  5. Select the image displayed in the center panel (source, modified and difference).
  6. Swith on/off the two panels display.
  7. Enable/Disable the error overlay on the center panel.
  8. Show/Hide image comment
  9. Zoom management
  10. 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).
  11. Display the parameters panel.
  12. Go to the online help or display informations on DiffImg.
  13. 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.
  14. Modified image button. Same action as the previous one.
  15. Difference button. Same action as the previous one.
  16. Gain. You can modify the gain on the displayed image (mainly interesting on difference image).
  17. Offset. Add a constant value to the image pixel (mainly interesting on difference image).
  18. Overview (you can pan the current view by clicking & move on it.
  19. Difference summary
  20. Difference histogramme




Main interface description

Available command line arguments

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.