53 template<
class ImgType>
friend 66 void append(
const Img<Type> *src,
int iChannel=-1);
72 void append(
const Img<Type> *src,
const std::vector<int>& vChannels);
129 int getEndIndex(
int iIndex)
const {
return iIndex < 0 ? getChannels() : iIndex+1; }
158 void mirror(
axis eAxis,
int iChannel,
212 bool passOwnerShip=
false);
227 const std::vector<Type*>& vptData,
bool passOwnerShip=
false);
244 const std::vector<Type*>& vptData,
bool passOwnerShip=
false);
326 return this->shallowCopy (
static_cast<const Img<Type>&
>(tSource));
373 return const_cast<Type&>(
static_cast<const Img<Type>*
>(
this)->
operator()(iX,iY,iChannel));
378 return getData(iChannel)[iX+getWidth()*iY];
393 return const_cast<Img<Type>*
>(
this)->
operator()(x,y);
413 return (*
this)((int)fX, (
int)fY, iChannel);
417 float subPixelLIN(
float fX,
float fY,
int iChannel)
const;
420 float subPixelRA(
float fX,
float fY,
float w,
float h,
int iChannel)
const;
421 float subPixelRA(
const unsigned int xB,
const unsigned int xE,
422 const unsigned int yB,
const unsigned int yE,
423 const float xBMul,
const float xEMul,
const float BMul,
const float yEMul,
424 const Type *d,
const unsigned int w)
const;
427 Type operator()(
float fX,
float fY,
int iChannel,
scalemode eMode)
const;
456 for(
int i=0;i<getChannels();++i){
465 ERROR_LOG(
"extracting channels of a const Img into an un-const Channel\n" 466 "is forbidden because it violates the const concept");
477 for(
int i=0;i<getChannels();++i){
486 ERROR_LOG(
"extracting channel data of a const Img into an un-const pointer\n" 487 "is forbidden because it violates the const concept");
492 for(
int i=0;i<getChannels();++i){
508 const std::vector<int> &channelIndices,
526 const std::vector<int> &channelIndices,
530 return const_cast<Img<Type>*
>(
this)->shallowCopy(
roi,channelIndices,fmt,time,0);
542 return shallowCopy(getROI(),std::vector<int>(),newFmt,getTime(),&poDstBase);
552 return shallowCopy(getROI(),std::vector<int>(),newFmt,getTime());
568 return shallowCopy(
roi,std::vector<int>(),getFormat(),getTime(),&poDstBase);
583 return const_cast<Img<Type>*
>(
this)->shallowCopy(
roi,0);
599 return shallowCopy(getROI(),channelIndices,
formatMatrix,getTime(),&poDstBase);
612 std::vector<int> v(1); v[0]= channelIndex;
613 return selectChannels(v,poDst);
621 return const_cast<Img<Type>*
>(
this)->selectChannels(channelIndices, 0);
633 std::vector<int> v(1); v[0]= channelIndex;
return selectChannels(v);
725 virtual void detach(
int iIndex = -1);
743 virtual void removeChannel(
int iChannel);
758 this->append (
static_cast<const Img<Type>*
>(src), iChannel);
766 this->append (
static_cast<const Img<Type>*
>(src), vChannels);
777 const Img<Type> extractChannelImg(
int index)
const;
782 Img<Type> extractChannelImg(
const std::vector<int> &indices);
787 const Img<Type> extractChannelImg(
const std::vector<int> &indices)
const;
792 virtual void swapChannels(
int iIndexA,
int iIndexB);
800 void replaceChannel(
int iThisIndex,
Img<Type> *poOtherImg,
int iOtherIndex);
804 virtual void setChannels(
int iNewNumChannels);
822 Type getMax(
int iChannel,
utils::Point *coords=0)
const;
829 Type getMin(
int iChannel,
utils::Point *coords=0)
const;
855 return getSize().width*
sizeof(Type);
865 return const_cast<Type*>(
static_cast<const Img<Type>*
>(
this)->getData(iChannel));
873 return m_vecChannels[iChannel].get();
897 return const_cast<Type*>(
static_cast<const Img<Type>*
>(
this)->getROIData(iChannel));
905 return getData(iChannel) + m_oParams.getPixelOffset();
919 return const_cast<Type*>(
static_cast<const Img<Type>*
>(
this)->getROIData(iChannel, p));
926 return getData(iChannel) + p.x + (p.y * getWidth());
932 return getData(iChannel);
938 return getData(iChannel);
976 template<
typename UnaryFunction>
980 std::for_each<Type*,UnaryFunction>(getData(
channel),getData(
channel)+getDim(),f);
984 std::for_each<Type*,UnaryFunction>(&(*it),&(*it)+it.getSubRectWidth(),f);
1010 template<
typename UnaryFunction>
1012 for(
int c=0;c<getChannels();++c){
1042 template<
typename UnaryFunction,
class dstType>
1049 std::transform(getData(srcChannel),getData(srcChannel)+getDim(),dst.
getData(dstChannel),f);
1054 std::transform(&(*it),&(*it)+it.getSubRectWidth(),&(*itDst),f);
1083 template<
typename UnaryFunction,
class dstType>
1086 for(
int c=0;c<getChannels();++c){
1087 transform_C(f,c,c,dst);
1134 template<
typename BinaryFunction,
class dstType,
class otherSrcType>
1137 int otherSrcChannel,
1147 std::transform(getData(thisChannel),getData(thisChannel)+getDim(),otherSrc.
getData(otherSrcChannel),dst.
getData(dstChannel),f);
1153 std::transform(&(*it),&(*it)+it.getROIWidth(),&(*itOtherSrc),&(*itDst),f);
1189 template<
typename BinaryFunction,
class dstType,
class otherSrcType>
1193 for(
int c=0;c<getChannels();++c){
1194 combine_C(f,c,c,c,otherSrc,dst);
1203 template<
typename Tsrc,
typename Tdst,
int Nsrc,
int Ndst,
typename ReduceFunc>
1204 static inline void reduce_arrays(
const Tsrc *src[Nsrc], Tdst *dst[Ndst],
unsigned int dim, ReduceFunc reduce){
1205 for(
int i=dim-1;i>=0;--i){
1208 for(
int j=0;j<Nsrc;tsrc[j]=src[j][i],++j) {}
1210 for(
int j=0;j<Ndst;dst[j][i]=tdst[j],++j) {}
1253 template<
typename Tdst,
int Nthis,
int Ndst,
typename ReduceFunc>
1259 const Type *psrc[Nthis];
1262 for(
int i=0;i<Nthis;psrc[i]=this->getData(i),++i) {}
1263 for(
int i=0;i<Ndst;pdst[i]=dst.
getData(i),++i) {}
1264 reduce_arrays<Type,Tdst,Nthis,Ndst,ReduceFunc>(psrc,pdst,this->getDim(),reduce);
1268 for(
int i=0;i<Nthis;itSrc[i]=this->beginROI(i),++i) {}
1269 for(
int i=0;i<Ndst;itDst[i]=dst.
beginROI(i),++i) {}
1271 for(
int l=this->getROI().height-1, w=this->getROI().width ;l>=0;--l){
1272 for(
int i=0;i<Nthis;itSrc[i].
incRow(),++i){
1273 psrc[i]=&(*(itSrc[i]));
1275 for(
int i=0;i<Ndst;itDst[i].
incRow(),++i){
1276 pdst[i]=&(*(itDst[i]));
1278 reduce_arrays<Type,Tdst,Nthis,Ndst,ReduceFunc>(psrc,pdst,w,reduce);
1295 virtual void mirror(
axis eAxis,
bool bOnlyROI=
false);
1302 void clear(
int iChannel = -1, Type tValue = 0,
bool bROIOnly=
true);
1323 for(
int i=0;i<getChannels();++i){
1338 for(
int i=0;i<getChannels();++i){
1421 return getData(
channel)+getDim();
1426 return getData(
channel)+getDim();
1445 return roi_iterator::create_end_roi_iterator(getData(
channel),getWidth(),getROI());
1451 return const_roi_iterator::create_end_roi_iterator(getData(
channel),getWidth(),getROI());
1476 void printAsMatrix(
const std::string &
format=
"5.3",
bool visROI=
true)
const;
1480 virtual bool isIndependent()
const;
1493 virtual void fillBorder(
bool setFullROI=
true);
1496 virtual void fillBorder(
icl64f val,
bool setFullROI=
true);
1502 virtual void fillBorder(
const std::vector<icl64f> &vals,
bool setFullROI=
true);
1510 virtual void fillBorder(
const ImgBase *src,
bool setFullROI=
true);
1644 template<
class ImgType>
1645 const ImgType*
combineImages(
const std::vector<const ImgType*>& vec);
1648 template<
class ImgType>
1650 return const_cast<ImgType*>(
combineImages(
reinterpret_cast<const std::vector<const ImgType*>&
>(vec)));
1678 template<
class S,
class D>
1722 ippiSet_8u_C1R(clearVal,im->getROIData(c,offs),im->getLineStep(),size);
1727 const utils::Size &size){
1730 ippiSet_16s_C1R(clearVal,im->getROIData(c,offs),im->getLineStep(),size);
1735 const utils::Point &offs,
const utils::Size &size){
1738 ippiSet_32s_C1R(clearVal,im->getROIData(c,offs),im->getLineStep(),size);
1743 const utils::Point &offs,
const utils::Size &size){
1746 ippiSet_32f_C1R(clearVal,im->getROIData(c,offs),im->getLineStep(),size);
1754 #define CHECK_VALUES(src,srcC,srcOffs,srcSize,dst,dstC,dstOffs,dstSize) \ 1757 ICLASSERT_RETURN( src && dst ); \ 1758 ICLASSERT_RETURN( srcSize == dstSize ); \ 1759 ICLASSERT_RETURN( src->validChannel(srcC) ); \ 1760 ICLASSERT_RETURN( dst->validChannel(dstC) ); \ 1761 ICLASSERT_RETURN( srcOffs.x >= 0 && srcOffs.y >= 0 && dstOffs.x >= 0 && dstOffs.y >= 0); \ 1762 ICLASSERT_RETURN( srcOffs.x+srcSize.width <= src->getWidth() && srcOffs.y+srcSize.height <= src->getHeight() ); \ 1763 ICLASSERT_RETURN( dstOffs.x+dstSize.width <= dst->getWidth() && dstOffs.y+dstSize.height <= dst->getHeight() ); 1787 CHECK_VALUES(src,srcC,srcOffs,srcSize,dst,dstC,dstOffs,dstSize);
1797 for(;itSrc != itSrcEnd;itSrc.
incRow(),itDst.incRow()){
1798 icl::core::copy<T>(&*itSrc,&*itSrc+srcSize.width,&*itDst);
1822 template <
class S,
class D>
1829 CHECK_VALUES(src,srcC,srcOffs,srcROISize,dst,dstC,dstOffs,dstROISize);
1839 for(;itSrc != itSrcEnd ;itSrc.
incRow(),itDst.incRow()){
1840 icl::core::convert<S,D>(&*itSrc,&*itSrc+srcROISize.width,&*itDst);
1869 Img<T> *dst,
int dstC,
1893 const Img<T> *src,
int srcC,
const utils::Point &srcOffs,
Img< Type > & forEach(UnaryFunction f)
STL based "for_each" implementations applying an Unary function on each ROI-pixel.
Definition: Img.h:1011
ImgBase * rbef
Definition: Img.h:1550
class representing a range defined by min and max value
Definition: Range.h:49
int getWidth() const
returns the images width
Definition: ImgBase.h:480
Pixel-Type class for copying image pixles to image pixels.
Definition: PixelRef.h:60
void append(Img< Type > *src, const std::vector< int > &vChannels)
Append a set of selected channels from source image.
Definition: Img.h:764
const Img< Type > * selectChannels(const std::vector< int > &channelIndices) const
Create a shallow copy of selected channels of a const image.
Definition: Img.h:619
int getEndIndex(int iIndex) const
returns the end index for a channel loop
Definition: Img.h:129
iterator begin(int channel)
returns the image iterator (equal to getData(channel))
Definition: Img.h:1410
undocument this line if you encounter any issues!
Definition: Any.h:37
void extractChannels(Channel< Type > *dst) const
this function is forbidden, it produces an error message
Definition: Img.h:463
static const Size null
null is w=0, h=0
Definition: Size.h:64
const_iterator begin(int channel) const
returns the image iterator (equal to getData(channel)) (const)
Definition: Img.h:1415
Ipp8u icl8u
8Bit unsigned integer type for the ICL
Definition: BasicTypes.h:64
ImgBasePtrPtr< T > bpp(Img< T > *image)
utility function to cast an Img<T> implicitly into an ImgBase **
Definition: Img.h:1585
Img< Type > & operator=(const Img< Type > &tSource)
Assign operator (flat copy of channels) WARNING: Violates const concept.
Definition: Img.h:324
Img< Type > * selectChannels(const std::vector< int > &channelIndices, Img< Type > *poDst=0)
Create a shallow copy of selected channels of an image.
Definition: Img.h:597
void convertChannelROI(const Img< S > *src, int srcC, const utils::Point &srcOffs, const utils::Size &srcROISize, Img< D > *dst, int dstC, const utils::Point &dstOffs, const utils::Size &dstROISize)
Definition: Img.h:1823
const Img< Type > * selectChannel(int channelIndex) const
Create a shallow copy of a single image channel of a const image.
Definition: Img.h:631
Highly flexible and optimized matrix class implementation.
Definition: DynMatrix.h:81
void deepCopyChannel(const Img< T > *src, int srcC, Img< T > *dst, int dstC)
Copies the channel from one image to another.
Definition: Img.h:1656
const ImgIterator< Type > const_roi_iterator
type definition for a const ROI iterator
Definition: Img.h:1404
ICL Time class (taken from the Ice lib)
Definition: Time.h:52
void append(Img< Type > *src, int iChannel=-1)
Append channels of external Img to the existing Img.
Definition: Img.h:756
ICLQt_API ImgROI roi(ImgQ &r)
creates a ROI-struct from an image
const Img< Type > * reinterpretChannels(format newFmt)
Create a shallow copy of this image with a new format (const version)
Definition: Img.h:551
void reduce_channels(Img< Tdst > &dst, ReduceFunc reduce) const
Utility function for combining image channels into another image.
Definition: Img.h:1254
const Img< Type > * shallowCopy(const utils::Rect &roi, const std::vector< int > &channelIndices, format fmt, utils::Time time=utils::Time::null) const
Definition: Img.h:525
const PixelRef< Type > operator()(int x, int y) const
as above, but const
Definition: Img.h:392
ImgIterator< Type > roi_iterator
type definition for ROI iterator
Definition: Img.h:1401
Type * getROIData(int iChannel)
returns a Type save data pointer to the first pixel within the images roi
Definition: Img.h:896
void deepCopyChannelROI(const Img< T > *src, int srcC, const utils::Point &srcOffs, const utils::Size &srcSize, Img< T > *dst, int dstC, const utils::Point &dstOffs, const utils::Size &dstSize)
copies the channel roi from one image to another
Definition: Img.h:1783
Img< dstType > & combine(BinaryFunction f, const Img< otherSrcType > &otherSrc, Img< dstType > &dst) const
STL-based "transform function combining two images pixel-wise into a given destination image (with RO...
Definition: Img.h:1190
ICLCore_API void flippedCopy(axis eAxis, const ImgBase *poSrc, ImgBase **ppoDst=0)
mirror copy of an image from source to destination image (1:1 copy)
Img< dstType > & transform_C(UnaryFunction f, int srcChannel, int dstChannel, Img< dstType > &dst) const
STL based "transform" implementation applying an Unary function on ROI-pixles with given destination ...
Definition: Img.h:1043
const Type * const_iterator
const iterator type (just a const pointer)
Definition: Img.h:1398
roi_iterator beginROI(int channel)
returns the iterator for an images ROI
Definition: Img.h:1430
void fillChannelROI(int channel, const T &value)
fills the given channel's with given source type value
Definition: Img.h:1345
The ImgParams class stores all image parameters .
Definition: ImgParams.h:58
void extractChannels(const Channel< Type > *dst) const
extracts all image channels at once into given channel pointer (const)
Definition: Img.h:471
Type * getData(int iChannel)
returns a Type save data data pointer to the channel data origin
Definition: Img.h:864
int getStartIndex(int iIndex) const
returns the start index for a channel loop
Definition: Img.h:121
format
determines the color-format, that is associated with the images channels
Definition: Types.h:70
bool isNull() const
null check : null images have 0-Channels and null-size
Definition: Img.h:289
Ipp32s icl32s
32bit signed integer type for the ICL
Definition: BasicTypes.h:58
Iterator class used to iterate through an Images ROI-pixels.
Definition: ImgIterator.h:242
const ImgType * combineImages(const std::vector< const ImgType * > &vec)
Combine several images using shallow copy.
static T p2o(T *ptr)
Conversion function to transform a pointer into an object.
Definition: Img.h:1639
const_roi_iterator endROI(int channel) const
returns the end-iterator for an images ROI (const)
Definition: Img.h:1449
Ipp32f icl32f
32Bit floating point type for the ICL
Definition: BasicTypes.h:55
ICLQt_API void fill(float r, float g=-1, float b=-1, float alpha=255)
sets the current fill color to given r,g,b,alpha value
#define ICLASSERT_RETURN_VAL(X, VALUE)
Definition: Macros.h:148
Ipp64f icl64f
64Bit floating point type for the ICL
Definition: BasicTypes.h:52
Type * iterator
iterator type (just a data pointer)
Definition: Img.h:1395
const Channel< Type > operator[](int channel) const
extracts an image channel
Definition: Img.h:406
Img< Type > * selectChannel(int channelIndex, Img< Type > *poDst=0)
Create a shallow copy of a single image channel of an image.
Definition: Img.h:610
Size class of the ICL.
Definition: Size.h:61
void fillROI(const T &value)
fills the whole image with given source type value
Definition: Img.h:1337
utility class that helps for an implicit conversion between Img<T>* to ImgBase**
Definition: Img.h:1525
void convertChannel(const Img< S > *src, int srcC, Img< D > *dst, int dstC)
copies/converts the data from one image to another image (IPP-OPTIMIZED)
Definition: Img.h:1679
Img< dstType > & combine_C(BinaryFunction f, int thisChannel, int otherSrcChannel, int dstChannel, const Img< otherSrcType > &otherSrc, Img< dstType > &dst) const
STL-based "transform function combining two images pixel-wise into a given destination image (with RO...
Definition: Img.h:1135
void extractChannels(Channel< Type > *dst)
extracts all image channels at once into given channel pointer
Definition: Img.h:454
void extractPointers(Type **dst) const
this function is forbidden, it produces an error message
Definition: Img.h:484
Utility helper class for faster and more convenient access to single channel image data.
Definition: Channel.h:145
ICLCore_API void flippedCopyROI(axis eAxis, const ImgBase *poSrc, ImgBase **ppoDst=0)
mirror copy of an images ROI into a destination images ROI
bool validChannel(const int iChannel) const
validate the given channel index
Definition: ImgBase.h:817
void incRow(int numLines=1) const
move the pixel vertically forward
Definition: MatrixSubRectIterator.h:249
const Img< Type > * shallowCopy(const utils::Rect &roi) const
Create a shallow copy of a const source image.
Definition: Img.h:581
int hasFullROI() const
returns ROISize == ImageSize
Definition: ImgBase.h:563
roi_iterator endROI(int channel)
returns the end-iterator for an images ROI
Definition: Img.h:1443
static const ImgParams null
as default size=(0,0), channels=0, format=matrix, roi=(0,0,0,0)
Definition: ImgParams.h:61
Img< Type > * shallowCopy(const utils::Rect &roi, Img< Type > *poDst=NULL)
Create a shallow copy of the image.
Definition: Img.h:566
void clearChannelROI(Img< T > *im, int c, T clearVal, const utils::Point &offs, const utils::Size &size)
sets an arbitrary image ROI to a given value
Definition: Img.h:1702
int getDim() const
returns the pixel count of each channel
Definition: ImgBase.h:486
ICLCore_API void scaledCopyChannelROI(const Img< T > *src, int srcC, const utils::Point &srcOffs, const utils::Size &srcSize, Img< T > *dst, int dstC, const utils::Point &dstOffs, const utils::Size &dstSize, scalemode eScaleMode)
virtual void * getDataPtr(int iChannel)
returns the raw- data pointer of an image channel
Definition: Img.h:931
Img< dstType > & transform(UnaryFunction f, Img< dstType > &dst) const
STL based "transform" implementation applying an Unary function on ROI-pixles with given destination ...
Definition: Img.h:1084
#define ERROR_LOG(x)
Definition: Macros.h:111
scalemode
for scaling of Img images theses functions are provided
Definition: Types.h:84
const Type * getData(int iChannel) const
returns a Type save data data pointer to the channel data origin (const)
Definition: Img.h:870
Type * getROIData(int iChannel, const utils::Point &p)
returns the data pointer to a pixel with defined offset
Definition: Img.h:918
const math::DynMatrix< Type > extractDynMatrix(int channel) const
extracts given channel as DynMatrix<Type> const
Definition: Img.h:448
Channel< Type > operator[](int channel)
extracts an image channel
Definition: Img.h:399
const_roi_iterator beginROI(int channel) const
returns the iterator for an images ROI (const)
Definition: Img.h:1436
ICLCore_API void flippedCopyChannelROI(axis eAxis, const Img< T > *src, int srcC, const utils::Point &srcOffs, const utils::Size &srcSize, Img< T > *dst, int dstC, const utils::Point &dstOffs, const utils::Size &dstSize)
mirror copy ROI data from one image to the ROI of another image (IPP-OPTIMIZED)
PixelRef< Type > operator()(int x, int y)
extracts a pixels channel values at once
Definition: Img.h:387
static void scale(const int deg, xcomplex *P)
Definition: PolynomialSolver.h:133
virtual const void * getDataPtr(int iChannel) const
returns the raw- data pointer of an image channel (const)
Definition: Img.h:937
math::DynMatrix< Type > extractDynMatrix(int channel)
extracts given channel as DynMatrix<Type>
Definition: Img.h:442
Point class of the ICL used e.g. for the Images ROI offset.
Definition: Point.h:58
std::vector< utils::SmartArray< Type > > m_vecChannels
internally used storage for the image channels
Definition: Img.h:80
void fillChannel(int channel, const T &value)
fills the given channel with given source type value
Definition: Img.h:1330
utils::Size getROISize() const
returns the images ROI size
Definition: ImgBase.h:521
math::FixedColVector< T, 4 > normalize(const math::FixedMatrix< T, 1, 4 > &v)
normalize a vector to length 1
Definition: HomogeneousMath.h:97
int getChannels() const
returns the channel count of the image
Definition: ImgBase.h:489
float subPixelNN(float fX, float fY, int iChannel) const
sub-pixel access using nearest neighbor interpolation
Definition: Img.h:412
static void reduce_arrays(const Tsrc *src[Nsrc], Tdst *dst[Ndst], unsigned int dim, ReduceFunc reduce)
private helper function called from reduce_channels template
Definition: Img.h:1204
#define ICLASSERT_RETURN(X)
Definition: Macros.h:141
void extractPointers(const Type **dst) const
extracts all data pointers into given destination pointer (const)
Definition: Img.h:491
const Type * getROIData(int iChannel, const utils::Point &p) const
returns the data pointer to a pixel with defined offset (const)
Definition: Img.h:923
#define FUNCTION_LOG(x)
Definition: Macros.h:123
axis
for flipping of images
Definition: Types.h:99
const Type & operator()(int iX, int iY, int iChannel) const
as above, but const
Definition: Img.h:377
Rectangle class of the ICL used e.g. for the Images ROI-rect.
Definition: Rect.h:95
ICLQt_API ImgQ channel(const ImgQ &image, int channel)
picks a specific image channel
const_iterator end(int channel) const
returns the image end-iterator (const)
Definition: Img.h:1425
Ipp16s icl16s
16bit signed integer type for the ICL (range [-32767, 32768 ])
Definition: BasicTypes.h:61
static const Time null
Definition: Time.h:59
Img< Type > * reinterpretChannels(format newFmt, Img< Type > *poDst=NULL)
Create a shallow copy of this image with a new format.
Definition: Img.h:540
void fill(const T &value)
fills the whole image with given source type value
Definition: Img.h:1322
void extractPointers(Type **dst)
extracts all data pointers into given destination pointer
Definition: Img.h:476
virtual void detach(int iIndex=-1)
Makes the image channels inside the Img independent from other Img.
iterator end(int channel)
returns the image end-iterator (equal to getData(channel)+getDim())
Definition: Img.h:1420
ImgBase is the Image-Interface class that provides save access to underlying Img-template .
Definition: ImgBase.h:131
Img< Type > & forEach_C(UnaryFunction f, int channel)
STL based "for_each" implementations applying an Unary function on each ROI-pixel of given channel.
Definition: Img.h:977
The Img class implements the ImgBase Image interface with type specific functionalities .
Definition: Img.h:49
Specialization of the SmartPtrBase class for Pointers.
Definition: SmartPtr.h:75
virtual int getLineStep() const
Returns the width of an image line in bytes.
Definition: Img.h:854
const Type * getROIData(int iChannel) const
returns a Type save data pointer to the first pixel within the images roi (const)
Definition: Img.h:902
static const ImgIterator< Type > create_end_roi_iterator(const Type *data, int width, const utils::Rect &roi)
Definition: ImgIterator.h:245
#define ICLCore_API
Definition: CompatMacros.h:174
Img< Type > detached() const
Utility method, that returns a detached version of this image.
Definition: Img.h:735
Type & operator()(int iX, int iY, int iChannel)
pixel access operator
Definition: Img.h:372
const utils::Size & getSize() const
returns the size of the images
Definition: ImgBase.h:477