Rudin-Osher-Fatemi Total Variation Denoising using Split Bregman
Data Structures | Macros | Enumerations | Functions
imdiff.c File Reference

Image difference calculator program. More...

#include <math.h>
#include <string.h>
#include <ctype.h>
#include "imageio.h"
#include "conv.h"

Go to the source code of this file.

Data Structures

struct  programparams
 struct of program parameters More...
 

Macros

#define DISPLAY_SCALING   255
 Display metrics for intensities in the range [0,DISPLAY_SCALING].
 
#define MSSIM_K1   0.01
 
#define MSSIM_K2   0.03
 
#define MSSIM_C1   (MSSIM_K1*MSSIM_K1)
 
#define MSSIM_C2   (MSSIM_K2*MSSIM_K2)
 

Enumerations

enum  metric {
  DEFAULT_METRICS, MAX_METRIC, MSE_METRIC, RMSE_METRIC,
  PSNR_METRIC, MSSIM_METRIC
}
 enum of possible metrics
 

Functions

static int ParseParams (programparams *Param, int argc, char *argv[])
 
void MakeDifferenceImage (float *A, const float *B, int Width, int Height, int NumChannels, float D)
 Make a difference image, Diff = (A - B)/(2D) + 0.5.
 
void BasicMetrics (float *Max, float *Mse, const float *A, const float *B, int Width, int Height, int NumChannels, int Pad)
 Compute the maximum absolute difference and the MSE.
 
float ComputeMssim (const float *A, const float *B, int Width, int Height, int NumChannels, int Pad)
 Compute the Mean Structural SIMilarity (MSSIM) index.
 
void PrintHelpMessage ()
 Print program usage help message.
 
int main (int argc, char *argv[])
 

Detailed Description

Image difference calculator program.

Author
Pascal Getreuer getre.nosp@m.uer@.nosp@m.gmail.nosp@m..com

This file implements the imdiff program, a command line tool for comparing two images with various image quality metrics. The possible metrics are

The program can also create a difference image, computed as D_n = 255/2 ((A_n - B_n)/D + 1) where values outside of the range [0,255] are saturated.

Image alpha channels are ignored. Also beware that although the program can read 16-bit PNG images (provided LIBPNG_SUPPORT is enabled), the image data is quantized internally to 8 bits.

Copyright (c) 2010-2011, Pascal Getreuer All rights reserved.

This program is free software: you can use, modify and/or redistribute it under the terms of the simplified BSD License. You should have received a copy of this license along this program. If not, see http://www.opensource.org/licenses/bsd-license.html.

Definition in file imdiff.c.