Image blurring command line program.
More...
#include <math.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <fftw3.h>
#include "cliio.h"
#include "kernels.h"
#include "randmt.h"
Go to the source code of this file.
|
#define | MIN(a, b) (((a) <= (b)) ? (a) : (b)) |
|
#define | _CONCAT(A, B) A ## B |
|
#define | FFT(S) _CONCAT(fftw_,S) |
|
|
enum | noisetype { NOISE_GAUSSIAN,
NOISE_LAPLACE,
NOISE_POISSON
} |
|
|
static void | PrintHelpMessage () |
| Print program information and usage message.
|
|
int | ParseParams (programparams *Params, int argc, const char *argv[]) |
| Parse command line arguments.
|
|
static num | WSymExtension (const num *Data, int Width, int Height, int x, int y) |
| Boundary handling function for whole-sample symmetric extension. More...
|
|
numcomplex * | ComputePaddedDFT (num *PadTemp, int PadWidth, int PadHeight, const num *Src, int SrcWidth, int SrcHeight, int IsKernelFlag) |
| Pad an image and compute Fourier transform. More...
|
|
int | ComputePaddedIDFT (num *Dest, int DestWidth, int DestHeight, num *PadTemp, int PadWidth, int PadHeight, numcomplex *Src) |
| Invert Fourier transform and trim padding. More...
|
|
int | BlurImage (num *Image, int ImageWidth, int ImageHeight, int NumChannels, const num *Kernel, int KernelWidth, int KernelHeight) |
| Convolve an image with a kernel. More...
|
|
void | GenerateNoise (num *Data, long NumEl, noisetype NoiseType, num Sigma) |
| Simulate noise of a specified type and standard deviation. More...
|
|
int | main (int argc, char **argv) |
|
static int | ReadNoise (programparams *Params, const char *String) |
| Parse noise command line argument.
|
|
Image blurring command line program.
- Author
- Pascal Getreuer getre.nosp@m.uer@.nosp@m.gmail.nosp@m..com
Copyright (c) 2010-2012, 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 with this program. If not, see http://www.opensource.org/licenses/bsd-license.html.
Definition in file imblur.c.
int BlurImage |
( |
num * |
Image, |
|
|
int |
ImageWidth, |
|
|
int |
ImageHeight, |
|
|
int |
NumChannels, |
|
|
const num * |
Kernel, |
|
|
int |
KernelWidth, |
|
|
int |
KernelHeight |
|
) |
| |
Convolve an image with a kernel.
- Parameters
-
Image | the image data in row-major planar order |
ImageWidth,ImageHeight,NumChannels | the image dimensions |
Kernel | the convolution kernel |
KernelWidth,KernelHeight | the kernel dimensions |
- Returns
- 1 on success, 0 on failure
Definition at line 235 of file imblur.c.
numcomplex* ComputePaddedDFT |
( |
num * |
PadTemp, |
|
|
int |
PadWidth, |
|
|
int |
PadHeight, |
|
|
const num * |
Src, |
|
|
int |
SrcWidth, |
|
|
int |
SrcHeight, |
|
|
int |
IsKernelFlag |
|
) |
| |
Pad an image and compute Fourier transform.
- Parameters
-
PadTemp | temporary buffer |
PadWidth,PadHeight | dimensions of the padded image |
Src | the source image |
SrcWidth,SrcHeight | dimensions of Src |
IsKernelFlag | nonzero if Src is a convolution kernel |
- Returns
- the Fourier transform of the padded image, or NULL on failure
Definition at line 132 of file imblur.c.
int ComputePaddedIDFT |
( |
num * |
Dest, |
|
|
int |
DestWidth, |
|
|
int |
DestHeight, |
|
|
num * |
PadTemp, |
|
|
int |
PadWidth, |
|
|
int |
PadHeight, |
|
|
numcomplex * |
Src |
|
) |
| |
Invert Fourier transform and trim padding.
- Parameters
-
Dest | destination buffer |
DestWidth,DestHeight | dimensions of Dest |
PadTemp | temporary buffer |
PadWidth,PadHeight | dimensions of the padded image |
Src | the transformed image |
- Returns
- 1 on succes, 0 on failure
Definition at line 198 of file imblur.c.
void GenerateNoise |
( |
num * |
Data, |
|
|
long |
NumEl, |
|
|
noisetype |
NoiseType, |
|
|
num |
Sigma |
|
) |
| |
Simulate noise of a specified type and standard deviation.
- Parameters
-
Data | the image data upon which noise is simulated |
NumEl | number of elements in Data |
NoiseType | type of noise (Gaussian, Laplace, or Poisson) |
Sigma | standard deviation of the noise |
Definition at line 325 of file imblur.c.
static num WSymExtension |
( |
const num * |
Data, |
|
|
int |
Width, |
|
|
int |
Height, |
|
|
int |
x, |
|
|
int |
y |
|
) |
| |
|
static |
Boundary handling function for whole-sample symmetric extension.
- Parameters
-
Data | pointer to a contiguous 2D array in row-major order |
Width,Height | size of the data |
x,y | sampling location |
- Returns
- extrapolated value
Definition at line 96 of file imblur.c.