25 #include "ImageConvert.hh"
31 template <
class StorageType>
38 BIASERR(
"Does not make sense to convert grey images to interleaved or planar. Target image left unchanged!");
45 return ToInterleavedRGB_(source,dest);
53 BIASERR(
"Conversion To Interleaved only implemented for ImageBase::CM_HSV, ImageBase::CM_BGR, ImageBase::CM_RGB. Target image left unchanged!");
60 template <
class StorageType>
69 BIASERR(
"image sizes of input images does not match");
98 template <
class StorageType>
103 BIASERR(
"not implemented");
108 template <
class StorageType>
125 BIASERR(
"Source image was already interleaved.");
127 register StorageType* destStop = pDest + 3 * tmpdest->
GetPixelCount();
128 register const StorageType* src = source.
GetImageData();
129 for(;pDest < destStop; pDest++, src++)
135 register StorageType* destStop = pDest + 3 * tmpdest->
GetPixelCount();
137 register const StorageType* src_red = source.
GetImageData();
141 while (pDest < destStop) {
143 *(pDest++) = *(src_red++);
144 *(pDest++) = *(src_green++);
145 *(pDest++) = *(src_blue++);
void Release()
reimplemented from ImageBase
static int ToInterleavedYUYV422_(const Image< StorageType > &source, Image< StorageType > &dest)
bool IsEmpty() const
check if ImageData_ points to allocated image buffer or not
void SetColorModel(EColorModel Model)
unsigned int GetWidth() const
void SetInterleaved(bool interleaved)
color values, 3 channels, order: blue,green,red
unsigned int GetChannelCount() const
returns the number of Color channels, e.g.
color values, 3 channels, order: red,green,blue
unsigned int GetHeight() const
static BIASImageBase_EXPORT int ToInterleavedRGB(const Image< StorageType > &red, const Image< StorageType > &green, const Image< StorageType > &blue, Image< StorageType > &dest)
Takes the three channels and composes one interleaved RGB image.
The image template class for specific storage types.
bool SamePixelAndChannelCount(const ImageBase &Image) const
checks if data area has same "size" as Image of other type
static int ToInterleavedRGB_(const Image< StorageType > &source, Image< StorageType > &dest)
void Init(unsigned int Width, unsigned int Height, unsigned int channels=1, enum EStorageType storageType=ST_unsignedchar, const bool interleaved=true)
calls Init from ImageBase storageType is ignored, just dummy argument
const StorageType * GetImageData() const
overloaded GetImageData() from ImageBase
enum EColorModel GetColorModel() const
enum EStorageType GetStorageType() const
HSV, 3 channels, order: hue, sat , value.
unsigned long int GetPixelCount() const
returns number of pixels in image
static BIASImageBase_EXPORT int ToInterleaved(const Image< StorageType > &source, Image< StorageType > &dest)
Takes the source image, and build an interleaved version.