libcartoon.cpp File Reference

Cartoon + texture functions. More...

#include <string.h>
#include "libcartoon.h"
Include dependency graph for libcartoon.cpp:

Go to the source code of this file.

Functions

void non_linear_cartoon (float *input, float *out, float sigma, int width, int height)
 Cartoon + texture decomposition for a single channel image.
void non_linear_cartoon (float *ired, float *igreen, float *iblue, float *ored, float *ogreen, float *oblue, float sigma, int width, int height)
 Cartoon + texture decomposition for a color image.
void low_pass_filter (float *input, float *out, float sigma, int niter, int width, int height)
 Low Pass filter L_sigma f The low pass filter is approximated by L = Id - (Id - G_sigma)^{n *} That is, the difference between f and G_sigma(f) is convolved again with G_sigma, and the result of this convolution is put back to f This approach is iterated niter times.
float WeightingFunction (float r1, float r2)
 Weighting function w(lambda(x)) being lambda(x) = (r1 - r2) / r1 and w(x) the linear ramp going from 0 to 1 between lambda=0.25 and lambda=0.5.
void fpCopy (float *fpI, float *fpO, int iLength)
 Copy vector.
void fpCombine (float *u, float a, float *v, float b, float *w, int size)
 Linear combination of two vectors: a * u + b * v.
void fiComputeImageGradient (float *tpI, float *tpGrad, float *tpOri, int iWidth, int iHeight)
 Compute gradient magnitude and orientation of an image.
float * fiFloatGaussKernel (float std, int &size)
 Build a 1D Gauss kernel of standard deviation std Length of vector is calculated depending on std.
void fiFloatBufferConvolution (float *buffer, float *kernel, int size, int ksize)
 1D convolution of a vector with a fixed kernel
void fiFloatHorizontalConvolution (float *u, float *v, int width, int height, float *kernel, int ksize, int boundary)
 1D convolution of every row of an image with a fixed kernel
void fiFloatVerticalVonvolution (float *u, float *v, int width, int height, float *kernel, int ksize, int boundary)
 1D convolution of every column of an image with a fixed kernel
void fiSepConvol (float *u, float *v, int width, int height, float *xkernel, int xksize, float *ykernel, int yksize)
 Separable convolution by rows and columns with respective filters xkernel and ykernel.

Detailed Description

Cartoon + texture functions.

Author:
Antoni Buades <toni.buades@uib.es>

Definition in file libcartoon.cpp.


Function Documentation

void fiComputeImageGradient ( float *  tpI,
float *  tpGrad,
float *  tpOri,
int  iWidth,
int  iHeight 
)

Compute gradient magnitude and orientation of an image.

Parameters:
[in] tpI input image
[out] tpGrad output gradient magnitude
[out] tpOri output gradient orientation
[in] iWidth,iHeight size of the image

Definition at line 427 of file libcartoon.cpp.

Here is the caller graph for this function:

void fiFloatBufferConvolution ( float *  buffer,
float *  kernel,
int  size,
int  ksize 
)

1D convolution of a vector with a fixed kernel

Parameters:
[in] buffer input and output vector
[in] size size of input vector
[in] kernel input kernel
[in] size length of kernel

Definition at line 532 of file libcartoon.cpp.

Here is the caller graph for this function:

float* fiFloatGaussKernel ( float  std,
int &  size 
)

Build a 1D Gauss kernel of standard deviation std Length of vector is calculated depending on std.

Parameters:
[in] std Gaussian standard deviation
[out] size length of Gaussian vector

Definition at line 478 of file libcartoon.cpp.

Here is the caller graph for this function:

void fiFloatHorizontalConvolution ( float *  u,
float *  v,
int  width,
int  height,
float *  kernel,
int  ksize,
int  boundary 
)

1D convolution of every row of an image with a fixed kernel

Parameters:
[in] u input image
[out] v output image
[in] ksize length of kernel
[in] kernel input kernel
[in] width,height size of the image

Definition at line 569 of file libcartoon.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void fiFloatVerticalVonvolution ( float *  u,
float *  v,
int  width,
int  height,
float *  kernel,
int  ksize,
int  boundary 
)

1D convolution of every column of an image with a fixed kernel

Parameters:
[in] u input image
[out] v output image
[in] ksize length of kernel
[in] kernel input kernel
[in] width,height size of the image

Definition at line 625 of file libcartoon.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void fiSepConvol ( float *  u,
float *  v,
int  width,
int  height,
float *  xkernel,
int  xksize,
float *  ykernel,
int  yksize 
)

Separable convolution by rows and columns with respective filters xkernel and ykernel.

Parameters:
[in] u input image
[out] v output image
[in] xksize length of kernel for row convolution
[in] xkernel input kernel for row convolution
[in] yksize length of kernel for column convolution
[in] ykernel input kernel for column convolution
[in] width,height size of the image

Definition at line 683 of file libcartoon.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void fpCombine ( float *  u,
float  a,
float *  v,
float  b,
float *  w,
int  size 
)

Linear combination of two vectors: a * u + b * v.

Parameters:
[in] u input vector
[in] v input vector
[in] a value
[in] b value
[out] w output vector
[in] size length of vector

Definition at line 406 of file libcartoon.cpp.

Here is the caller graph for this function:

void fpCopy ( float *  fpI,
float *  fpO,
int  iLength 
)

Copy vector.

Parameters:
[in] fpI input vector
[out] fpO output vector
[in] iLength length of vector

Definition at line 384 of file libcartoon.cpp.

void low_pass_filter ( float *  input,
float *  out,
float  sigma,
int  niter,
int  width,
int  height 
)

Low Pass filter L_sigma f The low pass filter is approximated by L = Id - (Id - G_sigma)^{n *} That is, the difference between f and G_sigma(f) is convolved again with G_sigma, and the result of this convolution is put back to f This approach is iterated niter times.

Parameters:
[in] input input image
[out] out output vector
[in] sigma standard deviation of the low pass filter
[in] niter number of iterations
[in] width,height size of the image

Definition at line 261 of file libcartoon.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void non_linear_cartoon ( float *  ired,
float *  igreen,
float *  iblue,
float *  ored,
float *  ogreen,
float *  oblue,
float  sigma,
int  width,
int  height 
)

Cartoon + texture decomposition for a color image.

Parameters:
[in] ired,igreen,iblue input image
[out] ored,ogreen,oblue output vector
[in] sigma standard deviation of the low pass filter
[in] width,height size of the image

Definition at line 129 of file libcartoon.cpp.

Here is the call graph for this function:

void non_linear_cartoon ( float *  input,
float *  out,
float  sigma,
int  width,
int  height 
)

Cartoon + texture decomposition for a single channel image.

Parameters:
[in] input input image
[out] out output vector
[in] sigma standard deviation of the low pass filter
[in] width,height size of the image

Definition at line 51 of file libcartoon.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

float WeightingFunction ( float  r1,
float  r2 
)

Weighting function w(lambda(x)) being lambda(x) = (r1 - r2) / r1 and w(x) the linear ramp going from 0 to 1 between lambda=0.25 and lambda=0.5.

Parameters:
[in] r1 G_sigma * |Df|
[in] r2 G*|D(L_sigma*f)|

Definition at line 334 of file libcartoon.cpp.

Here is the caller graph for this function:

 All Files Functions Variables Defines
Generated on Sat Aug 13 01:55:56 2011 for Nonlinear cartoon+texture decomposition by  doxygen 1.6.3