#include "Image/OmniOps.H"
#include "Image/Image.H"
#include "Image/Pixels.H"
#include <cmath>
#include <iostream>
#include "inst/Image/OmniOps.I"
Go to the source code of this file.
Functions | |
template<class T > | |
void | lowPassPixel (Image< T > &src, const int x, const int y, const int radius) |
Perform a low pass filter about a specific pixel. | |
template<class T > | |
Image< PixRGB< T > > | omniCorrectGen (const Image< PixRGB< T > > &src, const int Rx, const int Ry, const int Xc, const int Yc, const int RA) |
First step of omni directional correction. | |
template<class T > | |
Image< PixRGB< T > > | omniCorrectSp (const Image< PixRGB< T > > &src, const float r, const float hh, const float kk, const int, const int, const int Xc, const int Yc) |
Second step of omni-directional correcton. | |
template<class T > | |
Image< PixRGB< T > > | omniDenebulize (const Image< PixRGB< T > > &src, const int radius) |
Denebulize a color Image using targeted low pass filtering. | |
template<class T > | |
Image< T > | omniDenebulize (const Image< T > &src, const int radius) |
Denebulize a byte Image using targeted low pass filtering. |
Operations for omnidirectional correction
Definition in file OmniOps.C.
void lowPassPixel | ( | Image< T > & | src, | |
const int | x, | |||
const int | y, | |||
const int | radius | |||
) | [inline] |
Perform a low pass filter about a specific pixel.
x | The x coord of the pixel | |
y | The y coord of the pixel | |
radius | The radius of the filter |
Definition at line 52 of file OmniOps.C.
References Image< T >::getHeight(), Image< T >::getVal(), Image< T >::getWidth(), Image< T >::setVal(), and sum().
Referenced by omniDenebulize().
Image<PixRGB<T> > omniCorrectGen | ( | const Image< PixRGB< T > > & | src, | |
const int | Rx, | |||
const int | Ry, | |||
const int | Xc, | |||
const int | Yc, | |||
const int | RA = 0 | |||
) | [inline] |
First step of omni directional correction.
image | The image your are going to process | |
Rx | The Radius in X - May be equal to Ry | |
Ry | The Radius in Y - May be equal to Rx | |
Xc | The center pixel x | |
Yc | The center pixel y | |
RA | Manual radius adjustment, this is used only for distortion adjustment. |
Definition at line 71 of file OmniOps.C.
References Point2D< T >::i, NO_INIT, Pixels< T, 3 >::setVal(), and sqrt().
Referenced by Omni< T >::run().
Image<PixRGB<T> > omniCorrectSp | ( | const Image< PixRGB< T > > & | src, | |
const float | r, | |||
const float | hh, | |||
const float | kk, | |||
const int | Rx, | |||
const int | Ry, | |||
const int | Xc, | |||
const int | Yc | |||
) | [inline] |
Second step of omni-directional correcton.
Values for r,h,k must be obtained via measurement and derived via circular regression (see Mundhenk et al SPIE 2000) Note: run omniCorrectGen first.
image | The image your are going to process | |
r | The radius calculated by circular regression | |
hh | The Circle center coord h (i.e. x) | |
kk | The Circle center coord k (i.e. y) | |
Rx | The Radius in X - May be equal to Ry | |
Ry | The Radius in Y - May be equal to Rx | |
Xc | The center pixel x | |
Yc | The center pixel y |
Denebulize a byte Image using targeted low pass filtering.
image | a standard Image | |
radius | The size of the filter |
Definition at line 213 of file OmniOps.C.
References Image< T >::getHeight(), Image< T >::getVal(), Image< T >::getWidth(), and lowPassPixel().
Image<PixRGB<T> > omniDenebulize | ( | const Image< PixRGB< T > > & | src, | |
const int | radius | |||
) | [inline] |
Denebulize a color Image using targeted low pass filtering.
image | a standard Image | |
radius | The size of the filter |
Definition at line 192 of file OmniOps.C.
References PixRGB< T >::blue(), PixRGB< T >::green(), lowPassPixel(), and PixRGB< T >::red().
Referenced by Omni< T >::run().