cinder::ip Namespace Reference

Classes

class  AdaptiveThresholdT

Typedefs

typedef AdaptiveThresholdT
< uint8_t > 
AdaptiveThreshold
typedef AdaptiveThresholdT
< uint8_t > 
AdaptiveThreshold8u
typedef AdaptiveThresholdT< float > AdaptiveThreshold32f

Functions

template<typename T >
void edgeDetectSobel (const ChannelT< T > &srcChannel, const Area &srcArea, const Vec2i &dstOffset, ChannelT< T > *dstChannel)
template<typename T >
void edgeDetectSobel (const SurfaceT< T > &srcSurface, const Area &srcArea, const Vec2i &dstOffset, SurfaceT< T > *dstSuface)
template<typename T >
void edgeDetectSobel (const ChannelT< T > &srcChannel, ChannelT< T > *dstChannel)
template<typename T >
void edgeDetectSobel (const SurfaceT< T > &srcSurface, SurfaceT< T > *dstSuface)
template<typename T , typename Y >
void fill (SurfaceT< T > *surface, const ColorT< Y > &color)
template<typename T , typename Y >
void fill (SurfaceT< T > *surface, const ColorT< Y > &color, const Area &area)
template<typename T , typename Y >
void fill (SurfaceT< T > *surface, const ColorAT< Y > &color)
template<typename T , typename Y >
void fill (SurfaceT< T > *surface, const ColorAT< Y > &color, const Area &area)
template<typename T >
void fill (ChannelT< T > *channel, T value, const Area &area)
template<typename T >
void fill (ChannelT< T > *channel, T value)
template<typename T >
void flipVertical (SurfaceT< T > *surface)
template<typename T >
void grayscale (const SurfaceT< T > &srcSurface, SurfaceT< T > *dstSurface)
 Converts Surface srcSurface to grayscale and stores the result in Surface dstSurface. Uses primary weights dictated by the Rec. 709 Video Standard.
template<typename T >
void grayscale (const SurfaceT< T > &srcSurface, ChannelT< T > *dstChannel)
 Converts Surface srcSurface to grayscale and stores the result in Channel dstChannel. Uses primary weights dictated by the Rec. 709 Video Standard.
void hdrNormalize (Surface32f *surface)
void hdrNormalize (Channel32f *channel)
void getMinMax (const Channel32f &channel, float *resultMin, float *resultMax)
template<typename T >
void unpremultiply (SurfaceT< T > *surface)
template<typename T >
void resize (const SurfaceT< T > &srcSurface, SurfaceT< T > *dstSurface, const FilterBase &filter=FilterTriangle())
template<typename T >
void resize (const ChannelT< T > &srcChannel, ChannelT< T > *dstChannel, const FilterBase &filter=FilterTriangle())
template<typename T >
void resize (const SurfaceT< T > &srcSurface, const Area &srcArea, SurfaceT< T > *dstSurface, const Area &dstArea, const FilterBase &filter=FilterTriangle())
template<typename T >
SurfaceT< T > resizeCopy (const SurfaceT< T > &srcSurface, const Area &srcArea, const Vec2i &dstSize, const FilterBase &filter=FilterTriangle())
 Returns a new Surface which is a copy of srcSurface's area srcArea scaled to size dstSize using filter filter.
template<typename T >
void resize (const ChannelT< T > &srcChannel, const Area &srcArea, ChannelT< T > *dstChannel, const Area &dstArea, const FilterBase &filter=FilterTriangle())
template<typename T >
void threshold (SurfaceT< T > *surface, T value, const Area &area)
 Thresholds surface setting any values below value to zero and any values above to unity inside the Area area.
template<typename T >
void threshold (SurfaceT< T > *surface, T value)
 Thresholds surface setting any values below value to zero and any values above to unity.
template<typename T >
void threshold (const SurfaceT< T > &srcSurface, T value, SurfaceT< T > *dstSurface)
 Thresholds srcSurface setting any values below value to zero and any values above to unity and storing the result in dstSurface.
template<typename T >
void threshold (const ChannelT< T > &srcSurface, T value, ChannelT< T > *dstSurface)
 Thresholds srcChannel setting any values below value to zero and any values above to unity and storing the result in dstChannel.
template<typename T >
void adaptiveThreshold (const ChannelT< T > &srcChannel, int32_t windowSize, float percentageDelta, ChannelT< T > *dstChannel)
 Thresholds srcChannel using an adaptive thresholding algorithm which considers a window of size windowSize pixels and stores the result in dstChannel.
template<typename T >
void adaptiveThreshold (ChannelT< T > *channel, int32_t windowSize, float percentageDelta)
 Thresholds srcChannel using an adaptive thresholding algorithm which considers a window of size windowSize pixels.
template<typename T >
void adaptiveThresholdZero (ChannelT< T > *channel, int32_t windowSize)
 Thresholds srcChannel using an adaptive thresholding algorithm which considers a window of size windowSize pixels. Equivalent to calling adaptiveThreshold with a 0 for percentageDelta.
template<typename T >
void adaptiveThresholdZero (const ChannelT< T > &srcChannel, int32_t windowSize, ChannelT< T > *dstChannel)
template<typename T >
Area findNonTransparentArea (const SurfaceT< T > &surface, const Area &bounds)
template<typename T >
void fill_impl (SurfaceT< T > *surface, const ColorT< T > &color, const Area &area)
template<typename T >
void fill_impl (SurfaceT< T > *surface, const ColorAT< T > &color, const Area &area)
template<>
void grayscale (const Surface8u &srcSurface, Channel8u *dstChannel)
template void grayscale (const SurfaceT< float > &srcSurface, ChannelT< float > *dstChannel)
template<>
void unpremultiply< uint8_t > (SurfaceT< uint8_t > *surface)
template<>
void unpremultiply< float > (SurfaceT< float > *surface)
template<typename LT , typename AT >
void scanlineAccumulate (LT weight, LT *lineBuffer, int32_t lineBufferWidth, AT *accum)
template<typename T , typename WT >
void makeWeightTable (int32_t b, float cen, const FilterBase &filter, const FilterParams *params, int32_t len, bool trimzeros, WeightTable< WT > *wtab)
template<typename AT , typename T >
void scanlineShiftAccumToChannel (AT *accum, int32_t x1, int32_t y, int32_t width, ChannelT< T > *channel)
template<typename T , typename WT , typename AT >
void scanlineFilterChannelToBuffer (WeightTable< WT > *weights, int32_t x, int32_t y, const ChannelT< T > &channel, AT *lineBuffer, int32_t width)
template<typename T >
void resample (const vector< const ChannelT< T > * > &srcChannels, const FilterBase &filter, const Area &srcArea, const Area &dstArea, const vector< ChannelT< T > * > &dstChannels)
template<typename T >
void thresholdImpl (SurfaceT< T > *surface, T value, const Area &area)
template<typename T >
void thresholdImpl (const SurfaceT< T > &srcSurface, T value, const Area &srcArea, const Vec2i &dstLT, SurfaceT< T > *dstSurface)
template<typename T >
void thresholdImpl (const ChannelT< T > &srcChannel, T value, const Area &srcArea, const Vec2i &dstLT, ChannelT< T > *dstChannel)
template<typename T >
void calculateAdaptiveThreshold (const ChannelT< T > *srcChannel, typename CHANTRAIT< T >::Accum *integralImage, int32_t windowSize, float percentageDelta, ChannelT< T > *dstChannel)
template<typename T >
void calculateAdaptiveThresholdZero (const ChannelT< T > *srcChannel, typename CHANTRAIT< T >::Accum *integralImage, int32_t windowSize, ChannelT< T > *dstChannel)
template<typename T >
void calculateIntegralImage (const ChannelT< T > &channel, typename CHANTRAIT< T >::Accum *integralImage)
template<typename T >
bool transparentHorizontalScanline (const SurfaceT< T > &surface, int32_t row, int32_t x1, int32_t x2)
template<typename T >
bool transparentVerticalScanline (const SurfaceT< T > &surface, int32_t column, int32_t y1, int32_t y2)

Typedef Documentation


Function Documentation

template<typename T >
void cinder::ip::edgeDetectSobel ( const ChannelT< T > &  srcChannel,
const Area &  srcArea,
const Vec2i &  dstOffset,
ChannelT< T > *  dstChannel 
)
template<typename T >
void cinder::ip::edgeDetectSobel ( const SurfaceT< T > &  srcSurface,
const Area &  srcArea,
const Vec2i &  dstOffset,
SurfaceT< T > *  dstSuface 
)
template<typename T >
void cinder::ip::edgeDetectSobel ( const ChannelT< T > &  srcChannel,
ChannelT< T > *  dstChannel 
)
template<typename T >
void cinder::ip::edgeDetectSobel ( const SurfaceT< T > &  srcSurface,
SurfaceT< T > *  dstSuface 
)
template<typename T , typename Y >
void cinder::ip::fill ( SurfaceT< T > *  surface,
const ColorT< Y > &  color 
)
template<typename T , typename Y >
void cinder::ip::fill ( SurfaceT< T > *  surface,
const ColorT< Y > &  color,
const Area &  area 
)
template<typename T , typename Y >
void cinder::ip::fill ( SurfaceT< T > *  surface,
const ColorAT< Y > &  color 
)
template<typename T , typename Y >
void cinder::ip::fill ( SurfaceT< T > *  surface,
const ColorAT< Y > &  color,
const Area &  area 
)
template<typename T >
void cinder::ip::fill ( ChannelT< T > *  channel,
value,
const Area &  area 
)
template<typename T >
void cinder::ip::fill ( ChannelT< T > *  channel,
value 
)
template<typename T >
void cinder::ip::flipVertical ( SurfaceT< T > *  surface  ) 

Flips the contents of surface vertically

template<typename T >
void cinder::ip::grayscale ( const SurfaceT< T > &  srcSurface,
SurfaceT< T > *  dstSurface 
)

Converts Surface srcSurface to grayscale and stores the result in Surface dstSurface. Uses primary weights dictated by the Rec. 709 Video Standard.

template<typename T >
void cinder::ip::grayscale ( const SurfaceT< T > &  srcSurface,
ChannelT< T > *  dstChannel 
)

Converts Surface srcSurface to grayscale and stores the result in Channel dstChannel. Uses primary weights dictated by the Rec. 709 Video Standard.

void cinder::ip::hdrNormalize ( Surface32f *  surface  ) 

Normalizes surface by scaling the maximum and minimum values to lie in the range [0,1]

void cinder::ip::hdrNormalize ( Channel32f *  channel  ) 

Normalizes channel by scaling the maximum and minimum values to lie in the range [0,1]

void cinder::ip::getMinMax ( const Channel32f &  channel,
float *  resultMin,
float *  resultMax 
)

Determines the minimum and maximum values of channel

template<typename T >
void cinder::ip::unpremultiply ( SurfaceT< T > *  surface  ) 

Unpremultiplies the contents of a Surface using its own alpha channel

template<typename T >
void cinder::ip::resize ( const SurfaceT< T > &  srcSurface,
SurfaceT< T > *  dstSurface,
const FilterBase &  filter = FilterTriangle() 
)
template<typename T >
void cinder::ip::resize ( const ChannelT< T > &  srcChannel,
ChannelT< T > *  dstChannel,
const FilterBase &  filter = FilterTriangle() 
)
template<typename T >
void cinder::ip::resize ( const SurfaceT< T > &  srcSurface,
const Area &  srcArea,
SurfaceT< T > *  dstSurface,
const Area &  dstArea,
const FilterBase &  filter = FilterTriangle() 
)
template<typename T >
SurfaceT<T> cinder::ip::resizeCopy ( const SurfaceT< T > &  srcSurface,
const Area &  srcArea,
const Vec2i &  dstSize,
const FilterBase &  filter = FilterTriangle() 
)

Returns a new Surface which is a copy of srcSurface's area srcArea scaled to size dstSize using filter filter.

template<typename T >
void cinder::ip::resize ( const ChannelT< T > &  srcChannel,
const Area &  srcArea,
ChannelT< T > *  dstChannel,
const Area &  dstArea,
const FilterBase &  filter = FilterTriangle() 
)
template<typename T >
void cinder::ip::threshold ( SurfaceT< T > *  surface,
value,
const Area &  area 
)

Thresholds surface setting any values below value to zero and any values above to unity inside the Area area.

template<typename T >
void cinder::ip::threshold ( SurfaceT< T > *  surface,
value 
)

Thresholds surface setting any values below value to zero and any values above to unity.

template<typename T >
void cinder::ip::threshold ( const SurfaceT< T > &  srcSurface,
value,
SurfaceT< T > *  dstSurface 
)

Thresholds srcSurface setting any values below value to zero and any values above to unity and storing the result in dstSurface.

template<typename T >
void cinder::ip::threshold ( const ChannelT< T > &  srcSurface,
value,
ChannelT< T > *  dstSurface 
)

Thresholds srcChannel setting any values below value to zero and any values above to unity and storing the result in dstChannel.

template<typename T >
void cinder::ip::adaptiveThreshold ( const ChannelT< T > &  srcChannel,
int32_t  windowSize,
float  percentageDelta,
ChannelT< T > *  dstChannel 
)

Thresholds srcChannel using an adaptive thresholding algorithm which considers a window of size windowSize pixels and stores the result in dstChannel.

Implements the algorithm described in "Adaptive Thresholding Using the Integral Image" by Bradley & Roth. The srcSurface.getWidth() / 8 is a good default for windowSize and 0.15 is for percentageDelta

template<typename T >
void cinder::ip::adaptiveThreshold ( ChannelT< T > *  channel,
int32_t  windowSize,
float  percentageDelta 
)

Thresholds srcChannel using an adaptive thresholding algorithm which considers a window of size windowSize pixels.

Implements the algorithm described in "Adaptive Thresholding Using the Integral Image" by Bradley & Roth. The srcSurface.getWidth() / 8 is a good default for windowSize and 0.15 is for percentageDelta

template<typename T >
void cinder::ip::adaptiveThresholdZero ( ChannelT< T > *  channel,
int32_t  windowSize 
)

Thresholds srcChannel using an adaptive thresholding algorithm which considers a window of size windowSize pixels. Equivalent to calling adaptiveThreshold with a 0 for percentageDelta.

Implements the algorithm described in "Adaptive Thresholding Using the Integral Image" by Bradley & Roth. The srcSurface.getWidth() / 8 is a good default for windowSize

template<typename T >
void cinder::ip::adaptiveThresholdZero ( const ChannelT< T > &  srcChannel,
int32_t  windowSize,
ChannelT< T > *  dstChannel 
)
template<typename T >
Area cinder::ip::findNonTransparentArea ( const SurfaceT< T > &  surface,
const Area &  bounds 
)

Finds the bounding rectangle of the area bounds inside of surface which contains non-zero alpha

template<typename T >
void cinder::ip::fill_impl ( SurfaceT< T > *  surface,
const ColorT< T > &  color,
const Area &  area 
)
template<typename T >
void cinder::ip::fill_impl ( SurfaceT< T > *  surface,
const ColorAT< T > &  color,
const Area &  area 
)
template<>
void cinder::ip::grayscale ( const Surface8u &  srcSurface,
Channel8u *  dstChannel 
)
template void cinder::ip::grayscale ( const SurfaceT< float > &  srcSurface,
ChannelT< float > *  dstChannel 
)
template<>
void cinder::ip::unpremultiply< uint8_t > ( SurfaceT< uint8_t > *  surface  ) 
template<>
void cinder::ip::unpremultiply< float > ( SurfaceT< float > *  surface  ) 
template<typename LT , typename AT >
void cinder::ip::scanlineAccumulate ( LT  weight,
LT *  lineBuffer,
int32_t  lineBufferWidth,
AT *  accum 
)
template<typename T , typename WT >
void cinder::ip::makeWeightTable ( int32_t  b,
float  cen,
const FilterBase &  filter,
const FilterParams *  params,
int32_t  len,
bool  trimzeros,
WeightTable< WT > *  wtab 
)
template<typename AT , typename T >
void cinder::ip::scanlineShiftAccumToChannel ( AT *  accum,
int32_t  x1,
int32_t  y,
int32_t  width,
ChannelT< T > *  channel 
)
template<typename T , typename WT , typename AT >
void cinder::ip::scanlineFilterChannelToBuffer ( WeightTable< WT > *  weights,
int32_t  x,
int32_t  y,
const ChannelT< T > &  channel,
AT *  lineBuffer,
int32_t  width 
)
template<typename T >
void cinder::ip::resample ( const vector< const ChannelT< T > * > &  srcChannels,
const FilterBase &  filter,
const Area &  srcArea,
const Area &  dstArea,
const vector< ChannelT< T > * > &  dstChannels 
)
template<typename T >
void cinder::ip::thresholdImpl ( SurfaceT< T > *  surface,
value,
const Area &  area 
)
template<typename T >
void cinder::ip::thresholdImpl ( const SurfaceT< T > &  srcSurface,
value,
const Area &  srcArea,
const Vec2i &  dstLT,
SurfaceT< T > *  dstSurface 
)
template<typename T >
void cinder::ip::thresholdImpl ( const ChannelT< T > &  srcChannel,
value,
const Area &  srcArea,
const Vec2i &  dstLT,
ChannelT< T > *  dstChannel 
)
template<typename T >
void cinder::ip::calculateAdaptiveThreshold ( const ChannelT< T > *  srcChannel,
typename CHANTRAIT< T >::Accum *  integralImage,
int32_t  windowSize,
float  percentageDelta,
ChannelT< T > *  dstChannel 
)
template<typename T >
void cinder::ip::calculateAdaptiveThresholdZero ( const ChannelT< T > *  srcChannel,
typename CHANTRAIT< T >::Accum *  integralImage,
int32_t  windowSize,
ChannelT< T > *  dstChannel 
)
template<typename T >
void cinder::ip::calculateIntegralImage ( const ChannelT< T > &  channel,
typename CHANTRAIT< T >::Accum *  integralImage 
)
template<typename T >
bool cinder::ip::transparentHorizontalScanline ( const SurfaceT< T > &  surface,
int32_t  row,
int32_t  x1,
int32_t  x2 
)
template<typename T >
bool cinder::ip::transparentVerticalScanline ( const SurfaceT< T > &  surface,
int32_t  column,
int32_t  y1,
int32_t  y2 
)