Basic Image AlgorithmS Library
2.8.0
|
Maps source pixel to sink pixel of given projections. More...
#include <Image/ProjectionMapping.hh>
Public Member Functions | |
virtual int | GetBoundingBox (unsigned int srcwidth, unsigned int srcheight, unsigned int sinkwidth, unsigned int sinkheight, int &tlx, int &tly, int &brx, int &bry) |
uses forward mapping to calculate the bounding box in sink image, where to actually do the backward mapping (only needed for speed up). More... | |
int | GetJacobian (const HomgPoint2D &sink, Matrix2x2< double > &Jacobian) const |
get jacobian (including concatenated mappings) More... | |
int | GetSourceCoordinates (const HomgPoint2D &sink, HomgPoint2D &source) const |
wrapper function to allow the lookup implementation to be shared with other algorithms. More... | |
ProjectionMapping < InputStorageType, OutputStorageType > & | operator= (const ProjectionMapping &src) |
required because of const members More... | |
ProjectionMapping () | |
ProjectionMapping (const ProjectionMapping &src) | |
required because assignment is More... | |
void | SetConcatenation (BIAS::BackwardMapping< InputStorageType, OutputStorageType > *pCon) |
avoid intermediate image and concatenate two backward mappings More... | |
void | SetPlane (const BIAS::HomgPlane3D &plane) |
sets the scene to be a plane More... | |
void | SetPyramidSize (const int newsize) |
sets pyramid size to pyramid and updates if neccessary More... | |
void | SetSinkCam (const Projection &P, const Image< float > *sinkdepth=NULL) |
Set your sink projection before calling Map(),. More... | |
void | SetSourceCam (const Projection &P) |
Set your source projection before calling Map() More... | |
virtual void | UpdatePyramidSize (const ROI &ROIsink, int srcwidth, int srcheight) |
uses corners of sink roi (and few other sample points) to estimate maximum local scaling (and thus required pyramid level) More... | |
virtual | ~ProjectionMapping () |
User interfaces | |
int | Map (const Image< InputStorageType > &src, Image< OutputStorageType > &sink, InterpolationMethod=MapTrilinear, bool newSink=false, double SuperSampling=1.0) |
backward mapping with various interpolations More... | |
int | Map (Image< OutputStorageType > &sink) |
use this for subsequent calls to avoid pyramid recalculation when using tri-filtering More... | |
int | GetDisplacementMap (Image< float > &dismap, int width, int height) |
precomputes lookup coordinates and computes displacement map int TEXTURE coordinates, according to the size of src (or width,height) More... | |
int | GetDisplacementMap (Image< float > &dismap, Image< InputStorageType > &src) |
int | PrepareLookupTableMapping (const Image< InputStorageType > &src, Image< OutputStorageType > &sink, InterpolationMethod method, bool newSink=false) |
precomputes lookup coordinates for accessing src More... | |
int | MapWithLookupTable (const Image< InputStorageType > &src, Image< OutputStorageType > &sink, InterpolationMethod method) |
applies precomputed coordinates in src, fast for repeated usages of same mapping function More... | |
int | GetLookupTable (const std::string &filename, InterpolationMethod method) |
Returns the LUT generated by PrepareLookupTableMapping() as an file. More... | |
int | GetLookupTable (float *lutImageRow, InterpolationMethod method) |
int | GetLookupTableSize (unsigned int &width, unsigned int &channels, InterpolationMethod method) |
returns the size of the current LUT. More... | |
int | SetLookupTable (const std::string &filename, InterpolationMethod &method) |
Loads the LUT from a file, replaces the call to PrepareLookupTableMapping(). More... | |
int | SetLookupTable (const float *lutImageRow, unsigned int width, InterpolationMethod &method) |
Static Public Member Functions | |
static void | GenerateTestImage (Image< InputStorageType > &testimage, bool highFrequencyCross=true, InputStorageType dark=5, InputStorageType bright=127, const Matrix3x3< double > &Hinv=Matrix3x3< double >(MatrixIdentity)) |
generates a siemens star like test image with lots of different frequencies to test backward mapping More... | |
Protected Member Functions | |
virtual void | BuildPyramid_ (const Image< InputStorageType > &source, bool forceInit=true, int numlayers=-1) |
compute maximum number of pyramid levels needed More... | |
virtual int | CalcCoordOffset_ (const Image< OutputStorageType > &sink, const Image< InputStorageType > &source) |
result in offsetX_,offsetY_ More... | |
void | calcRelativeRSinkToSource_ () |
virtual int | ChangeImgSize_ (Image< OutputStorageType > &, const Image< InputStorageType > &) |
void | ClipBoundingBoxToROICorners_ (const BIAS::Image< OutputStorageType > &sink, int &tlx, int &tly, int &brx, int &bry) const |
clip computed region in dest image to roi More... | |
void | ClipValue_ (const double &value, OutputStorageType &newvalue) |
clip interpolated value to outputstoragetype and merge old and new value according to alpha More... | |
template<> | |
void | ClipValue_ (const double &value, unsigned char &newvalue) |
template<> | |
void | ClipValue_ (const double &value, float &newvalue) |
template<> | |
void | ClipValue_ (const double &value, unsigned char &newvalue) |
template<> | |
void | ClipValue_ (const double &value, float &newvalue) |
BIAS::Projection | GetSinkCam () |
BIAS::Projection | GetSourceCam () |
virtual int | GetSourceCoordinates_ (const HomgPoint2D &sink, HomgPoint2D &source) const |
Reimplementation for Pixel transformation, takes sink and computes coordinates in source. More... | |
geometrical coordinate mapping functions | |
virtual int | GetJacobian_ (const HomgPoint2D &sink, Matrix2x2< double > &Jacobian) const |
numeric approximation of jacobian, reimplement in derived class to make an analytic jacobian More... | |
void | ComputeLocalPyramidLayer_ (const HomgPoint2D &p_sink, double &localscale) |
computes pyramid layer for trilinear filtering, e.g. More... | |
pixel-value-mapping worker functions | |
int | MapTri_ (Image< OutputStorageType > &sink) |
map image avoiding aliasing More... | |
int | MapTrilinearGreySimple_ (Image< OutputStorageType > &sink) |
fast trilinear grey without special features More... | |
int | MapBi_ (const Image< InputStorageType > &source, Image< OutputStorageType > &sink, InterpolationMethod interpolationQuality) |
bilinear, bicubc and nearest neighbor interpolation More... | |
int | GetImageValue_ (const double &xsource, const double &ysource, const Image< InputStorageType > &im, unsigned int channel, double &result) |
worker function, which handles bilinear/bicubic interpolation, borders and weights More... | |
int | GetTrilinearImageValue_ (const double &xsource, const double &ysource, const double &scale, unsigned int channel, double &result) |
worker function, which handles bilinear/bicubic interpolation, pyramid levels, borders and weights More... | |
int | GetAnisotropicImageValue_ (const double &xsource, const double &ysource, Matrix2x2< double > &Jacobian, unsigned int channel, double &thereturnvalue) |
use jacobian of mapping function to do anisotropic antialiasing More... | |
Protected Attributes | |
bool | accountForDifferentCameraCenters_ |
dont map across plane at infinity More... | |
bool | aliasing_ |
set to true if possibility of aliasing is detected during mapping More... | |
BIAS::Image< float > | alphaImg_ |
has same size as overlap region used for blending More... | |
bool | autoPyramidSize_ |
pyramid size set by user or computed automatically ? More... | |
const Image< float > * | depthMapSink_ |
depth map used for sink if camera centers differ More... | |
double | height_ |
source image height More... | |
bool | incomplete_ |
set to true if not every pixel could be computed More... | |
InterpolationMethod | interpolationType_ |
which interpolation method are we using More... | |
HomgPlane3D | mappingPlane_ |
map via this plane More... | |
int | offsetX_ |
needed for newDist More... | |
int | offsetY_ |
BackwardMapping < InputStorageType, OutputStorageType > * | pConcatenation_ |
BWM_LUT_Entry_Anisotropic * | pLUT_Ani_ |
NOT IMPLEMENTED (YET ?) More... | |
BWM_LUT_Entry_Bicubic * | pLUT_Bic_ |
BWM_LUT_Entry_Bilinear * | pLUT_Bil_ |
int | pLUT_Bil_size |
BWM_LUT_Entry_Nearest * | pLUT_Nea_ |
lookup-tables for precomputed positions in source, same size as dst.PixelCount More... | |
int | pLUT_Nea_size |
BWM_LUT_Entry_Trilinear * | pLUT_Tri_ |
int | pLUT_Tri_size |
PyramidImage< InputStorageType > | pyramid_ |
this contains a pyramid of the last source image for anti-aliasing More... | |
unsigned | pyramidSize_ |
bool | rangeChecked_ |
The interpolated value is computed in double; if clipped value is not specialized for your output storage type (e.g. More... | |
RMatrix | relativeRSinkToSource_ |
ROI | ROI_ |
the roi of the last source image More... | |
Projection | SinkP_ |
Projection | SourceP_ |
Projections for backward mapping: Run over sink and compute source. More... | |
double | superSampling_ |
if larger than 1, super resolution is active More... | |
double | width_ |
source image width More... | |
Maps source pixel to sink pixel of given projections.
This class uses backward mapping to convert an image taken by a certain camera src (specified as BIAS::Projection) into an image that another camera sink would have seen at the same time. The original idea was that the two camera share the same pose and that this class handles tasks like fisheye to perspective or radial (un-)distortion. However, meanwhile you can as well change the orientation (e.g. to get a certain perspective cutout of a very wide field of view fisheye). Since all rays still intersect at the same camera center, no scene information is required.
If however, your sink has a different camera center than the source you can either assume that all pixels have infinite depth (which actually means that the distance of your cameras can be ignored in comparison to the distance to the scene), which leads to a mapping via the plane at infinity (infinite homography for perspective cameras). Or, you can specify your scene by providing depth information. In that case your scene is assumed to be a textured 2.5D mesh (fully connected), i.e. a single continuous surface in 3D space. You may as well specify that your scene is a single plane in space.
This class is an example of the need for adaptive trilinear or even anisotropic filtering, because typically, the local sampling frequency varies and aliasing will occur. Unfortunately, the unproject/project calls within the most inner loop make the whole mapping quite slow. If your mapping is constant (e.g. you want to radial-undistort 1000 images with the same parameters), consider using the prepared lookup table mapping interface (see BackwardMapping).
Definition at line 76 of file ProjectionMapping.hh.
|
virtual |
Definition at line 38 of file ProjectionMapping.cpp.
ProjectionMapping::ProjectionMapping | ( | ) |
Definition at line 43 of file ProjectionMapping.cpp.
References BIAS::ProjectionMapping< InputStorageType, OutputStorageType >::relativeRSinkToSource_, and BIAS::Matrix3x3< T >::SetIdentity().
ProjectionMapping::ProjectionMapping | ( | const ProjectionMapping< InputStorageType, OutputStorageType > & | src | ) |
required because assignment is
Definition at line 55 of file ProjectionMapping.cpp.
|
protectedvirtualinherited |
compute maximum number of pyramid levels needed
Definition at line 219 of file BackwardMapping.cpp.
References BIAS::ImageBase::GetHeight(), and BIAS::ImageBase::GetWidth().
|
protectedvirtualinherited |
result in offsetX_,offsetY_
Definition at line 1042 of file BackwardMapping.cpp.
References BIAS::ImageBase::GetHeight(), and BIAS::ImageBase::GetWidth().
|
inlineprotected |
Definition at line 142 of file ProjectionMapping.hh.
|
protectedvirtualinherited |
Definition at line 1070 of file BackwardMapping.cpp.
References BIAS::ImageBase::GetChannelCount(), BIAS::ImageBase::GetHeight(), BIAS::Image< StorageType >::GetImageDataArray(), BIAS::ImageBase::GetWidth(), BIAS::Image< StorageType >::Init(), and BIAS::ImageBase::SetZero().
|
protectedinherited |
clip computed region in dest image to roi
Definition at line 1026 of file BackwardMapping.cpp.
References BIAS::ImageBase::GetROICorners().
|
inlineprotectedinherited |
clip interpolated value to outputstoragetype and merge old and new value according to alpha
This function must be inplemented for diferent template types rather than for derived classes, e.g. if bicubic interpolation estimates the grey value 257.8 for an unsinged char image, this is rounded and clipped here to 255.0 since this is the maximum allowed uchar.
Definition at line 598 of file BackwardMapping.hh.
|
inlineprotectedinherited |
Definition at line 613 of file BackwardMapping.hh.
|
inlineprotectedinherited |
Definition at line 622 of file BackwardMapping.hh.
|
inlineprotectedinherited |
Definition at line 629 of file BackwardMapping.hh.
|
inlineprotectedinherited |
Definition at line 638 of file BackwardMapping.hh.
|
inlineprotectedinherited |
computes pyramid layer for trilinear filtering, e.g.
localscale 0.5 means best resolution and second best are averaged
Definition at line 366 of file BackwardMapping.hh.
|
staticinherited |
generates a siemens star like test image with lots of different frequencies to test backward mapping
testimage | initialized image of user defined size which will be filled |
highFrequencyCross | generates an additional high frequency line |
dark | black image value, e.g. close to 0 |
dark | white image value, e.g. close to 255 |
Hinv | homography to transform pattern (if desired) |
Definition at line 2004 of file BackwardMapping.cpp.
References BIAS::ImageBase::GetChannelCount(), BIAS::ImageBase::GetHeight(), BIAS::Image< StorageType >::GetImageDataArray(), BIAS::ImageBase::GetWidth(), BIAS::Image< StorageType >::Init(), and BIAS::ImageBase::IsEmpty().
|
protectedinherited |
use jacobian of mapping function to do anisotropic antialiasing
Definition at line 978 of file BackwardMapping.cpp.
References BIAS::Matrix2x2< T >::EigenvalueDecomposition(), and BIAS::Matrix< T >::GetSystemMatrix().
|
virtual |
uses forward mapping to calculate the bounding box in sink image, where to actually do the backward mapping (only needed for speed up).
The resulting coordinates can be negative ! The br position is the first pixel outside the region(as for a ROI).
Reimplemented from BIAS::BackwardMapping< InputStorageType, OutputStorageType >.
Definition at line 77 of file ProjectionMapping.cpp.
References BIAS::HomgPoint2D.
|
inherited |
precomputes lookup coordinates and computes displacement map int TEXTURE coordinates, according to the size of src (or width,height)
Definition at line 1125 of file BackwardMapping.cpp.
|
inherited |
|
inlineprotectedinherited |
worker function, which handles bilinear/bicubic interpolation, borders and weights
Definition at line 548 of file BackwardMapping.hh.
References BIAS::Image< StorageType >::BicubicInterpolation(), BIAS::Image< StorageType >::BilinearInterpolation(), BIAS::ROI::CheckBicubicInterpolation(), BIAS::ROI::CheckBilinearInterpolation(), and BIAS::ImageBase::GetROI().
|
inlineinherited |
get jacobian (including concatenated mappings)
Definition at line 302 of file BackwardMapping.hh.
|
protectedvirtualinherited |
numeric approximation of jacobian, reimplement in derived class to make an analytic jacobian
Reimplemented in BIAS::AffineMapping< InputStorageType, OutputStorageType >, BIAS::TextureMapping< InputStorageType, OutputStorageType >, and BIAS::HomographyMapping< InputStorageType, OutputStorageType >.
Definition at line 69 of file BackwardMapping.cpp.
|
inherited |
Returns the LUT generated by PrepareLookupTableMapping() as an file.
Definition at line 1241 of file BackwardMapping.cpp.
References BIAS::MapBilinear, BIAS::MapNearestNeighbor, and BIAS::MapTrilinear.
|
inherited |
Definition at line 1334 of file BackwardMapping.cpp.
References BIAS::MapBilinear, BIAS::MapNearestNeighbor, and BIAS::MapTrilinear.
|
inherited |
returns the size of the current LUT.
Definition at line 1195 of file BackwardMapping.cpp.
References BIAS::MapBilinear, BIAS::MapNearestNeighbor, and BIAS::MapTrilinear.
|
inlineprotected |
Definition at line 157 of file ProjectionMapping.hh.
|
inlineprotected |
Definition at line 153 of file ProjectionMapping.hh.
|
inlineinherited |
wrapper function to allow the lookup implementation to be shared with other algorithms.
Definition at line 272 of file BackwardMapping.hh.
Referenced by BIAS::RectificationViaProjectionMappingBase< InputStorageType, OutputStorageType >::Disp2Depth().
|
protectedvirtual |
Reimplementation for Pixel transformation, takes sink and computes coordinates in source.
Reimplemented from BIAS::BackwardMapping< InputStorageType, OutputStorageType >.
Definition at line 170 of file ProjectionMapping.cpp.
References BIAS::HomgPoint3D, and BIAS::Vector4< T >::NormL2().
|
protectedinherited |
worker function, which handles bilinear/bicubic interpolation, pyramid levels, borders and weights
Definition at line 913 of file BackwardMapping.cpp.
|
inherited |
backward mapping with various interpolations
Sink must be initialized with correct size and background color for invalid pixels. This way you can call it several times to create a panorama from several source images. For each pixel in sink, GetSourceCoordinates is called and the value in source interpolated.
newSink,if | true a new sink image is created that is large enough to hold the old sink and the new mapped src img. |
SuperSampling | if > 1.0, intermediate image with isotropically enlarged width and height (by factor SuperSampling) is created and downsampled for the final image (most useful for nonlinear mappings) |
Definition at line 257 of file BackwardMapping.cpp.
References BIAS::ImageBase::GetChannelCount(), BIAS::ImageBase::GetColorModel(), BIAS::ImageBase::GetHeight(), BIAS::ImageBase::GetROI(), BIAS::ImageBase::GetWidth(), BIAS::ImageBase::IsEmpty(), BIAS::ImageBase::IsPlanar(), BIAS::BackwardMapping< InputStorageType, OutputStorageType >::Map(), BIAS::MapAnisotropic, BIAS::MapBicubic, BIAS::MapBilinear, BIAS::MapNearestNeighbor, BIAS::MapTrilinear, BIAS::AffineMapping< InputStorageType, OutputStorageType >::SetAffineTransformation(), and BIAS::ImageBase::SetZero().
Referenced by BIAS::ImageBlender::BlendImages(), BIAS::PMDImageProc::FitDepthTo2DImageHomogr_(), BIAS::PMDImageProc::FitDepthTo2DImageKOnly_(), and BIAS::BackwardMapping< InputStorageType, OutputStorageType >::Map().
|
inherited |
use this for subsequent calls to avoid pyramid recalculation when using tri-filtering
Definition at line 362 of file BackwardMapping.cpp.
References BIAS::MapTrilinear.
|
protectedinherited |
bilinear, bicubc and nearest neighbor interpolation
Definition at line 382 of file BackwardMapping.cpp.
References BIAS::Image< StorageType >::BilinearInterpolationRGBInterleaved(), BIAS::ImageBase::GetChannelCount(), BIAS::ImageBase::GetHeight(), BIAS::Image< StorageType >::GetImageDataArray(), BIAS::ImageBase::GetWidth(), BIAS::MapBicubic, BIAS::MapBilinear, and BIAS::MapNearestNeighbor.
|
protectedinherited |
map image avoiding aliasing
This is almost correct regarding the sampling theorem, because it uses trilinear or anisotropic filtering over a pyramid. The local sampling frequency is estimated by analyzing the jacobian of the homography as a R^2->R^2 mapping. This is very slow. If possible, bicubic interpolation is done in the image, at borders (high pyramid levels) only bilinear.
In auto mode pyramid size is checked
Definition at line 527 of file BackwardMapping.cpp.
References BIAS::Image< StorageType >::FillImageWithConstValue(), BIAS::ImageBase::GetChannelCount(), BIAS::ImageBase::GetHeight(), BIAS::Image< StorageType >::GetImageDataArray(), BIAS::ImageBase::GetWidth(), BIAS::MapTrilinear, BIAS::ROI::Resize(), and BIAS::ROI::SetCorners().
|
protectedinherited |
fast trilinear grey without special features
assumes one channel grey image, no alpha blending, no concatenation, no 2d offset (from auto image size) and no super sampling
Definition at line 741 of file BackwardMapping.cpp.
References BIAS::Image< StorageType >::BicubicInterpolation(), BIAS::Image< StorageType >::FastBilinearInterpolationGrey(), BIAS::Image< StorageType >::FillImageWithConstValue(), BIAS::ImageBase::GetChannelCount(), BIAS::ROI::GetCornerLowerRightX(), BIAS::ROI::GetCornerLowerRightY(), BIAS::ROI::GetCornerUpperLeftX(), BIAS::ROI::GetCornerUpperLeftY(), BIAS::ImageBase::GetHeight(), BIAS::Image< StorageType >::GetImageDataArray(), BIAS::ImageBase::GetROI(), BIAS::ROI::GetWidth(), and BIAS::ImageBase::GetWidth().
|
inherited |
applies precomputed coordinates in src, fast for repeated usages of same mapping function
Definition at line 1805 of file BackwardMapping.cpp.
References BIAS::ImageBase::GetChannelCount(), BIAS::ImageBase::GetHeight(), BIAS::Image< StorageType >::GetImageData(), BIAS::ImageBase::GetROI(), BIAS::ImageBase::GetWidth(), BIAS::BWM_LUT_Entry_Nearest::index, BIAS::BWM_LUT_Entry_Bilinear::index_0_0, BIAS::BWM_LUT_Entry_Bilinear::index_0_1, BIAS::BWM_LUT_Entry_Bilinear::index_1_0, BIAS::BWM_LUT_Entry_Bilinear::index_1_1, BIAS::ImageBase::IsPlanar(), BIAS::MapAnisotropic, BIAS::MapBicubic, BIAS::MapBilinear, BIAS::MapNearestNeighbor, BIAS::BWM_LUT_Entry_Bilinear::mapped, BIAS::MapTrilinear, BIAS::BWM_LUT_Entry_Bilinear::xy_weight, BIAS::BWM_LUT_Entry_Bilinear::xY_weight, BIAS::BWM_LUT_Entry_Bilinear::Xy_weight, and BIAS::BWM_LUT_Entry_Bilinear::XY_weight.
ProjectionMapping< InputStorageType, OutputStorageType > & ProjectionMapping::operator= | ( | const ProjectionMapping< InputStorageType, OutputStorageType > & | src | ) |
required because of const members
Definition at line 65 of file ProjectionMapping.cpp.
References BIAS::ProjectionMapping< InputStorageType, OutputStorageType >::accountForDifferentCameraCenters_, BIAS::ProjectionMapping< InputStorageType, OutputStorageType >::depthMapSink_, BIAS::ProjectionMapping< InputStorageType, OutputStorageType >::mappingPlane_, BIAS::ProjectionMapping< InputStorageType, OutputStorageType >::SinkP_, and BIAS::ProjectionMapping< InputStorageType, OutputStorageType >::SourceP_.
|
inherited |
precomputes lookup coordinates for accessing src
If you want to apply the same mapping function over and over again, e.g. radial undistortion for a series of images, call this function once and MapWithLookupTable every time. sink must be of correct size !
Definition at line 1483 of file BackwardMapping.cpp.
References BIAS::ImageBase::GetChannelCount(), BIAS::ImageBase::GetHeight(), BIAS::ImageBase::GetPixelCount(), BIAS::ImageBase::GetROI(), BIAS::ImageBase::GetWidth(), BIAS::BWM_LUT_Entry_Nearest::index, BIAS::BWM_LUT_Entry_Bilinear::index_0_0, BIAS::BWM_LUT_Entry_Bilinear::index_0_1, BIAS::BWM_LUT_Entry_Bilinear::index_1_0, BIAS::BWM_LUT_Entry_Bilinear::index_1_1, BIAS::InterpolationMethod_UNKNOWN, BIAS::MapAnisotropic, BIAS::MapBicubic, BIAS::MapBilinear, BIAS::MapNearestNeighbor, BIAS::BWM_LUT_Entry_Nearest::mapped, BIAS::BWM_LUT_Entry_Bilinear::mapped, BIAS::BWM_LUT_Entry_Trilinear::mapped, BIAS::MapTrilinear, BIAS::BWM_LUT_Entry_Trilinear::pyr_diff, BIAS::BWM_LUT_Entry_Trilinear::pyr_diff_inv, BIAS::BWM_LUT_Entry_Trilinear::pyr_level_high, BIAS::BWM_LUT_Entry_Trilinear::pyr_level_low, BIAS::BWM_LUT_Entry_Trilinear::stage_0, BIAS::BWM_LUT_Entry_Trilinear::stage_1, BIAS::BWM_LUT_Entry_Bilinear::xy_weight, BIAS::BWM_LUT_Entry_Bilinear::xY_weight, BIAS::BWM_LUT_Entry_Bilinear::Xy_weight, and BIAS::BWM_LUT_Entry_Bilinear::XY_weight.
|
inlineinherited |
avoid intermediate image and concatenate two backward mappings
Imagine that the source image is transformed with pcon into the intermediate image, which is then transformed by this into the sink
Definition at line 319 of file BackwardMapping.hh.
|
inherited |
Loads the LUT from a file, replaces the call to PrepareLookupTableMapping().
Definition at line 1387 of file BackwardMapping.cpp.
|
inherited |
Definition at line 1436 of file BackwardMapping.cpp.
References BIAS::MapBilinear, BIAS::MapNearestNeighbor, BIAS::MapTrilinear, BIAS::BWM_LUT_Entry_Bilinear::SerializedIn(), and BIAS::BWM_LUT_Entry_Trilinear::SerializedIn().
|
inline |
sets the scene to be a plane
Definition at line 117 of file ProjectionMapping.hh.
|
inherited |
sets pyramid size to pyramid and updates if neccessary
Definition at line 194 of file BackwardMapping.cpp.
|
inline |
Set your sink projection before calling Map(),.
optional: if your sink has a different camera center it may make sense to pass a depth map for your sink image which is used during mapping. Otherwise infinite depth is assumed for every pixel.
@param sinkdepth only pointer is stored, must be valid all time !
Definition at line 108 of file ProjectionMapping.hh.
Referenced by BIAS::ImageBlender::BlendImages(), and BIAS::RectificationViaProjectionMappingBase< InputStorageType, OutputStorageType >::Disp2Depth().
|
inline |
Set your source projection before calling Map()
Definition at line 95 of file ProjectionMapping.hh.
Referenced by BIAS::ImageBlender::BlendImages(), and BIAS::RectificationViaProjectionMappingBase< InputStorageType, OutputStorageType >::Disp2Depth().
|
virtualinherited |
uses corners of sink roi (and few other sample points) to estimate maximum local scaling (and thus required pyramid level)
Definition at line 99 of file BackwardMapping.cpp.
References BIAS::ROI::GetCorners(), and BIAS::Random::GetUniformDistributed().
|
protected |
dont map across plane at infinity
Definition at line 171 of file ProjectionMapping.hh.
Referenced by BIAS::ProjectionMapping< InputStorageType, OutputStorageType >::operator=().
|
protectedinherited |
set to true if possibility of aliasing is detected during mapping
Definition at line 509 of file BackwardMapping.hh.
|
protectedinherited |
has same size as overlap region used for blending
Definition at line 538 of file BackwardMapping.hh.
|
protectedinherited |
pyramid size set by user or computed automatically ?
Definition at line 491 of file BackwardMapping.hh.
|
protected |
depth map used for sink if camera centers differ
Definition at line 165 of file ProjectionMapping.hh.
Referenced by BIAS::ProjectionMapping< InputStorageType, OutputStorageType >::operator=().
|
protectedinherited |
source image height
Definition at line 535 of file BackwardMapping.hh.
|
protectedinherited |
set to true if not every pixel could be computed
Definition at line 512 of file BackwardMapping.hh.
|
protectedinherited |
which interpolation method are we using
Definition at line 495 of file BackwardMapping.hh.
|
protected |
map via this plane
Definition at line 168 of file ProjectionMapping.hh.
Referenced by BIAS::ProjectionMapping< InputStorageType, OutputStorageType >::operator=().
|
protectedinherited |
needed for newDist
Definition at line 529 of file BackwardMapping.hh.
|
protectedinherited |
Definition at line 529 of file BackwardMapping.hh.
|
protectedinherited |
Definition at line 540 of file BackwardMapping.hh.
|
protectedinherited |
NOT IMPLEMENTED (YET ?)
Definition at line 525 of file BackwardMapping.hh.
|
protectedinherited |
Definition at line 526 of file BackwardMapping.hh.
|
protectedinherited |
Definition at line 517 of file BackwardMapping.hh.
|
protectedinherited |
Definition at line 521 of file BackwardMapping.hh.
|
protectedinherited |
lookup-tables for precomputed positions in source, same size as dst.PixelCount
Definition at line 516 of file BackwardMapping.hh.
|
protectedinherited |
Definition at line 520 of file BackwardMapping.hh.
|
protectedinherited |
Definition at line 518 of file BackwardMapping.hh.
|
protectedinherited |
Definition at line 522 of file BackwardMapping.hh.
|
protectedinherited |
this contains a pyramid of the last source image for anti-aliasing
Definition at line 486 of file BackwardMapping.hh.
|
protectedinherited |
Definition at line 492 of file BackwardMapping.hh.
|
protectedinherited |
The interpolated value is computed in double; if clipped value is not specialized for your output storage type (e.g.
ushort), this boolean indicates that the generic conversion (e.g. double->ushort) could have introduced artefacts (65536.0 -> 1).
Definition at line 505 of file BackwardMapping.hh.
|
protected |
Definition at line 140 of file ProjectionMapping.hh.
Referenced by BIAS::ProjectionMapping< InputStorageType, OutputStorageType >::ProjectionMapping().
|
protectedinherited |
the roi of the last source image
Definition at line 488 of file BackwardMapping.hh.
|
protected |
Definition at line 159 of file ProjectionMapping.hh.
Referenced by BIAS::ProjectionMapping< InputStorageType, OutputStorageType >::operator=().
|
protected |
Projections for backward mapping: Run over sink and compute source.
Definition at line 159 of file ProjectionMapping.hh.
Referenced by BIAS::ProjectionMapping< InputStorageType, OutputStorageType >::operator=().
|
protectedinherited |
if larger than 1, super resolution is active
Definition at line 498 of file BackwardMapping.hh.
|
protectedinherited |
source image width
Definition at line 532 of file BackwardMapping.hh.