1 #ifndef __ImageBlender_hh__
2 #define __ImageBlender_hh__
4 #include <Base/Image/Image.hh>
5 #include <Image/Camera.hh>
6 #include <Base/Image/ImageConvert.hh>
7 #include <Filter/Gauss.hh>
8 #include <Geometry/ProjectionParametersCylindric.hh>
9 #include <Geometry/ProjectionParametersPerspective.hh>
10 #include <Image/ProjectionMapping.hh>
11 #include <Geometry/Projection.hh>
13 #define WEIGHT_TYPE_NONE 0
14 #define WEIGHT_TYPE_CIRCULAR 1
15 #define WEIGHT_TYPE_CIRCULAR_FIT 2
16 #define WEIGHT_TYPE_RECTANGULAR 3
17 #define WEIGHT_TYPE_RECT_NONLINEAR 4
18 #define WEIGHT_TYPE_MIX 5 // mix between rectangular and circular
23 #define HORIZON_ALIGNMENT_X 0
24 #define HORIZON_ALIGNMENT_Y 1
25 #define HORIZON_ALIGNMENT_UNKNOWN 2
26 #define HORIZON_ALIGNMENT_AUTO 3
30 #define D_IMAGEBLENDER_MINIMAL 1
32 #define D_IMAGEBLENDER_GEOMETRY 2
34 #define D_IMAGEBLENDER_FILTERING 4
36 #define D_IMAGEBLENDER_BLENDING 8
80 unsigned int weightType = WEIGHT_TYPE_RECTANGULAR);
92 double gaussSigma = 1.2) {
97 cylindricImageHeight_);
98 ComputeCylCamGeometry(ppc);
99 return BlendImages(destination, ppc, NULL, gaussSigma);
115 double gaussSigma = 1.2);
123 cylindricImageHeight_ = newSize;
124 cylindricImageWidth_ =
125 (
unsigned int)(cylindricImageHeight_ * cylinderHeight_ / M_PI);
133 return cylindricImageWidth_;
159 unsigned int weightType =
160 WEIGHT_TYPE_RECTANGULAR);
167 bool wantDegrees =
false);
170 bool wantDegrees =
false);
196 #endif // __ImageBlender_hh__
unsigned int horizonAlignment_
maps images into a common camera and blends them seamlessly
unsigned int GetOuputImageSize()
BIAS::Gauss< float, float > gaussFilter_
std::map< BIAS::UUID, BIAS::Camera< float > > inputImages_
void SetDrawImageBorders(bool flag)
bool BlendImages(BIAS::Camera< unsigned char > &destination, double gaussSigma=1.2)
compute cylindrical geometry from added images and blend all added images
void SetWriteVrml(bool flag)
void SetOuputImageSize(const unsigned int &newSize)
Camera parameters which define the mapping between rays in the camera coordinate system and pixels in...
unsigned int cylindricImageWidth_
std::vector< BIAS::UUID > imageIDs_
void SetHorizonAlignment(unsigned int val)
determines the alignment of the horizon possible values are: HORIZON_ALIGNMENT_X - horizon is in x di...
Camera parameters which define the mapping between rays in the camera coordinate system and pixels in...
unsigned int cylindricImageHeight_