Basic Image AlgorithmS Library  2.8.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ImageConvertInstantiation.cpp
1 #include "bias_config.h"
2 
3 ///
4 /// solve explicit instantiation
5 /// this file is included by ImageConvert.cpp
6 /// @author Jan Woetzel
7 ///
8 
9 #define INSTANCE_ImageConvert(type)\
10 template BIASImageBase_EXPORT int ImageConvert::IP_ToGrey(BIAS::Image<type> &img);\
11 template BIASImageBase_EXPORT int ImageConvert::ToGrey(const BIAS::Image<type>& source, BIAS::Image<type>& dest);\
12 template BIASImageBase_EXPORT int ImageConvert::GetChannel(BIAS::Image<type>& image, int channel, bool strip);\
13 template BIASImageBase_EXPORT int ImageConvert::GetChannel(const BIAS::Image<type>& source, BIAS::Image<type>& dest, unsigned int channel);\
14 template BIASImageBase_EXPORT int ImageConvert::ToRGB(const BIAS::Image<type>& source, BIAS::Image<type>& dest);\
15 template BIASImageBase_EXPORT int ImageConvert::ToRGBA(const BIAS::Image<type>& source, BIAS::Image<type>& dest);\
16 template BIASImageBase_EXPORT int ImageConvert::ToHSV(const BIAS::Image<type>& source,BIAS::Image<type>& dest);\
17 template BIASImageBase_EXPORT int ImageConvert::HSVToRGB(const type h,const type s,const type v, type& r,type& g, type& b);\
18 template BIASImageBase_EXPORT int ImageConvert::ToHSL(const BIAS::Image<type>& source,BIAS::Image<type>& dest);\
19 template BIASImageBase_EXPORT int ImageConvert::TohsL(const BIAS::Image<type>& source,BIAS::Image<type>& dest);\
20 template BIASImageBase_EXPORT int ImageConvert::ToInterleaved(const BIAS::Image<type>& source, BIAS::Image<type>& dest);\
21 template BIASImageBase_EXPORT int ImageConvert::ToInterleavedRGB(const BIAS::Image<type>& red, const BIAS::Image<type>& green, const BIAS::Image<type>& blue, BIAS::Image<type>& dest);\
22 template BIASImageBase_EXPORT int ImageConvert::ToPlanar(const BIAS::Image<type>& source, BIAS::Image<type>& dest);\
23 template BIASImageBase_EXPORT int ImageConvert::FromInterleaved(const BIAS::Image<type>& source, BIAS::Image<type>& Image1, BIAS::Image<type>& Image2, BIAS::Image<type>& Image3);\
24 template BIASImageBase_EXPORT int ImageConvert::IP_RGBToGrey_(BIAS::Image<type> &img);\
25 template BIASImageBase_EXPORT int ImageConvert::IP_YUV422ToGrey_(BIAS::Image<type> &img);\
26 template BIASImageBase_EXPORT int ImageConvert::BGRToRGB_(const BIAS::Image<type>& source, BIAS::Image<type>& dest);\
27 template BIASImageBase_EXPORT int ImageConvert::YUV422ToRGB_(const BIAS::Image<type>& source, BIAS::Image<type>& dest);\
28 template BIASImageBase_EXPORT int ImageConvert::GreyToRGB_(const BIAS::Image<type>& source, BIAS::Image<type>& dest);\
29 template BIASImageBase_EXPORT int ImageConvert::RGBToGrey_(const BIAS::Image<type>& source, BIAS::Image<type>& dest);\
30 template BIASImageBase_EXPORT int ImageConvert::HSLToGrey_(const BIAS::Image<type>& source, BIAS::Image<type>& dest);\
31 template BIASImageBase_EXPORT int ImageConvert::YUV422ToGrey_(const BIAS::Image<type> &source, BIAS::Image<type>& dest);\
32 template BIASImageBase_EXPORT int ImageConvert::ToPlanarYUYV422_(const BIAS::Image<type>& source, BIAS::Image<type>& dest); \
33 template BIASImageBase_EXPORT int ImageConvert::ToPlanarRGB_(const BIAS::Image<type>& source, BIAS::Image<type>& dest);\
34 template BIASImageBase_EXPORT int ImageConvert::ToInterleavedYUYV422_(const BIAS::Image<type>& source, BIAS::Image<type>& dest);\
35 template BIASImageBase_EXPORT int ImageConvert::ToInterleavedRGB_(const BIAS::Image<type>& source, BIAS::Image<type>& dest);\
36 template BIASImageBase_EXPORT int ImageConvert::FromInterleavedYUYV422_(const BIAS::Image<type>& source, BIAS::Image<type>& Y, BIAS::Image<type>& U, BIAS::Image<type>& V);\
37 template BIASImageBase_EXPORT int ImageConvert::FromInterleavedRGB_(const BIAS::Image<type>& source, BIAS::Image<type>& R, BIAS::Image<type>& G, BIAS::Image<type>& B);\
38 template BIASImageBase_EXPORT int ImageConvert::BayerToGrey_(const BIAS::Image<type>& source, BIAS::Image<type>& dest);\
39 template BIASImageBase_EXPORT int ImageConvert::BayerToRGB_ (const BIAS::Image<type>& source, BIAS::Image<type>& dest);\
40 template BIASImageBase_EXPORT int ImageConvert::BayerToRGBSlow_(const BIAS::Image<type>& source, BIAS::Image<type>& dest);\
41 template BIASImageBase_EXPORT int ImageConvert::XYZToRGB(const BIAS::Image<float>& source, BIAS::Image<type>& dest, float scale);\
42 template BIASImageBase_EXPORT int ImageConvert::LUVToRGB(const BIAS::Image<float>& source, BIAS::Image<type>& dest, float scale);
43 
44 #ifdef BIAS_HAVE_OPENCV
45 #define INSTANCE_ImageConvert_OPENCV(cvt)\
46 template BIASImageBase_EXPORT int ImageConvert::BIAS2ipl(const BIAS::Image<cvt>& source, IplImage* &dest);\
47 template BIASImageBase_EXPORT int ImageConvert::Ipl2BIAS(IplImage* source, BIAS::Image<cvt>& dest);
48 #else
49 #define INSTANCE_ImageConvert_OPENCV(cvt)
50 #endif
51 
52 #ifdef BIAS_HAVE_DV
53 #define INSTANCE_ImageConvert_DV(dvtype)\
54 template BIASImageBase_EXPORT int ImageConvert::DVToRGB_(const BIAS::Image<dvtype>& source, BIAS::Image<dvtype>& dest,unsigned char quality);
55 #else
56 #define INSTANCE_ImageConvert_DV(dvtype)
57 #endif
58 
59 // all instances for one type:
60 #define INSTI(atype) INSTANCE_ImageConvert(atype) INSTANCE_ImageConvert_OPENCV(atype) INSTANCE_ImageConvert_DV(atype)
61 
62 INSTI(unsigned char)
63 template BIASImageBase_EXPORT int ImageConvert::BayerToRGB (const BIAS::Image<unsigned char>& source, BIAS::Image<unsigned char>& dest, BayerDemosaicMethod method, bool flip);
64 template BIASImageBase_EXPORT int ImageConvert::BayerToRGBSimple_(const unsigned char* source, unsigned char* dest, int sx, int sy, ImageBase::EColorModel tile);
65 template BIASImageBase_EXPORT int ImageConvert::BayerToRGBSimple(const unsigned char* source, unsigned char* dest, int sx, int sy, ImageBase::EColorModel tile);
66 template BIASImageBase_EXPORT int ImageConvert::BayerToRGBBilinear_(const unsigned char* source, unsigned char* dest, int sx, int sy, ImageBase::EColorModel tile);
67 template BIASImageBase_EXPORT int ImageConvert::BayerToRGBNearestNeighbour_(const unsigned char* source, unsigned char* dest, int sx, int sy, ImageBase::EColorModel tile);
68 template BIASImageBase_EXPORT int ImageConvert::BayerToRGBAHD_(const unsigned char* source, unsigned char* dest, int sx, int sy, ImageBase::EColorModel tile, int bits);
69 template BIASImageBase_EXPORT void ImageConvert::ClearBorders_<unsigned char>(unsigned char *rgb, int sx, int sy, int w);
70 template BIASImageBase_EXPORT void ImageConvert::CLIP(unsigned char& in, unsigned char& out);
71 template BIASImageBase_EXPORT void ImageConvert::CLIP16(unsigned char& in, unsigned char& out, unsigned char bits);
72 
73 INSTI(float)
74 
75 #ifdef BUILD_IMAGE_INT
76 INSTI(int)
77 #endif
78 #ifdef BUILD_IMAGE_CHAR
79 INSTI(char)
80 #endif
81 #ifdef BUILD_IMAGE_SHORT
82 INSTI(short)
83 #endif
84 #if defined(BUILD_IMAGE_USHORT)
85 INSTI(unsigned short)
86 template BIASImageBase_EXPORT int ImageConvert::BayerToRGB (const BIAS::Image<unsigned short>& source, BIAS::Image<unsigned short>& dest, BayerDemosaicMethod method, bool flip);
87 template BIASImageBase_EXPORT int ImageConvert::BayerToRGBSimple_(const unsigned short* source, unsigned short* dest, int sx, int sy, ImageBase::EColorModel tile);
88 template BIASImageBase_EXPORT int ImageConvert::BayerToRGBBilinear_(const unsigned short* source, unsigned short* dest, int sx, int sy, ImageBase::EColorModel tile);
89 template BIASImageBase_EXPORT int ImageConvert::BayerToRGBNearestNeighbour_(const unsigned short* source, unsigned short* dest, int sx, int sy, ImageBase::EColorModel tile);
90 template BIASImageBase_EXPORT int ImageConvert::BayerToRGBAHD_(const unsigned short* source, unsigned short* dest, int sx, int sy, ImageBase::EColorModel tile, int bits);
91 template BIASImageBase_EXPORT void ImageConvert::ClearBorders_(unsigned short *rgb, int sx, int sy, int w);
92 template BIASImageBase_EXPORT void ImageConvert::CLIP(unsigned short& in, unsigned short& out);
93 template BIASImageBase_EXPORT void ImageConvert::CLIP16(unsigned short& in, unsigned short& out, unsigned short bits);
94 #endif
95 #ifdef BUILD_IMAGE_DOUBLE
96 INSTI(double)
97 #endif
98 #ifdef BUILD_IMAGE_UINT
99 INSTI(unsigned int)
100 #endif
101