DCMTK Version 3.6.9 OFFIS DICOM Toolkit

Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | Private Member Functions | List of all members
DiScaleTemplate< T > Class Template Reference

Template class to scale images (on pixel data level). More...

Inheritance diagram for DiScaleTemplate< T >:

## Public Member Functions
| DiScaleTemplate (const int planes, const Uint16 columns, const Uint16 rows, const signed long left_pos, const signed long top_pos, const Uint16 src_cols, const Uint16 src_rows, const Uint16 dest_cols, const Uint16 dest_rows, const Uint32 frames, const int bits=0)
| constructor, scale clipping area.
| DiScaleTemplate (const int planes, const Uint16 src_cols, const Uint16 src_rows, const Uint16 dest_cols, const Uint16 dest_rows, const Uint32 frames, const int bits=0)
| constructor, scale whole image.
virtual | ~DiScaleTemplate ()
| destructor
int | isSigned () const
| check whether template type T is signed or not
void | scaleData (const T *src[], T *dest[], const int interpolate, const T value=0)
| choose scaling/clipping algorithm depending on specified parameters.

## Protected Attributes
const signed long | Left
| left coordinate of clipping area
const signed long | Top
| top coordinate of clipping area
const Uint16 | Columns
| width of source image
const Uint16 | Rows
| height of source image
Protected Attributes inherited from DiTransTemplate< T >
int | Planes
| number of planes
Uint16 | Src_X
| width of source image
Uint16 | Src_Y
| height of source image
const Uint16 | Dest_X
| width of destination image
const Uint16 | Dest_Y
| height of destination image
const Uint32 | Frames
| number of frames
const int | Bits
| number of bits per plane/pixel

## Private Member Functions
void | clipPixel (const T *src[], T *dest[])
| clip image to specified area (only inside image boundaries).
void | clipBorderPixel (const T *src[], T *dest[], const T value)
| clip image to specified area and add a border if necessary
void | replicatePixel (const T *src[], T *dest[])
| enlarge image by an integer factor.
void | suppressPixel (const T *src[], T *dest[])
| shrink image by an integer divisor.
void | scalePixel (const T *src[], T *dest[])
| free scaling method without interpolation.
void | interpolatePixel (const T *src[], T *dest[])
| free scaling method with interpolation
void | expandPixel (const T *src[], T *dest[])
| free scaling method with interpolation (only for magnification)
void | reducePixel (const T *src[], T *dest[])
| free scaling method with interpolation (only for reduction)
void | bilinearPixel (const T *src[], T *dest[])
| bilinear interpolation method (only for magnification)
void | bicubicPixel (const T *src[], T *dest[])
| bicubic interpolation method (only for magnification)

## Additional Inherited Members
Protected Member Functions inherited from DiTransTemplate< T >
| DiTransTemplate (const int planes, const Uint16 src_x, const Uint16 src_y, const Uint16 dest_x, const Uint16 dest_y, const Uint32 frames, const int bits=0)
| constructor
virtual | ~DiTransTemplate ()
| destructor
void | copyPixel (const T *src[], T *dest[])
| copy pixel data
void | fillPixel (T *dest[], const T value)
| fill pixel data with specified value
void | clearPixel (T *dest[])
| clear pixel data (set values to 0)

## Detailed Description

template<class T>
class DiScaleTemplate< T >

Template class to scale images (on pixel data level).

with and without interpolation

## Constructor & Destructor Documentation

## ◆ DiScaleTemplate() [1/2]

template<class T>

DiScaleTemplate< T >::DiScaleTemplate | ( | const int | planes,
|  | const Uint16 | columns,
|  | const Uint16 | rows,
|  | const signed long | left_pos,
|  | const signed long | top_pos,
|  | const Uint16 | src_cols,
|  | const Uint16 | src_rows,
|  | const Uint16 | dest_cols,
|  | const Uint16 | dest_rows,
|  | const Uint32 | frames,
|  | const int | bits = 0 )
| inline

constructor, scale clipping area.

Parameters

  planes | number of planes (1 or 3)
  columns | width of source image
  rows | height of source image
  left_pos | left coordinate of clipping area
  top_pos | top coordinate of clipping area
  src_cols | width of clipping area
  src_rows | height of clipping area
  dest_cols | width of destination image (scaled image)
  dest_rows | height of destination image
  frames | number of frames
  bits | number of bits per plane/pixel

References DiTransTemplate< T >::DiTransTemplate(), Columns, Left, Rows, and Top.

Referenced by DiColorScaleTemplate< T >::DiColorScaleTemplate(), and DiMonoScaleTemplate< T >::DiMonoScaleTemplate().

## ◆ DiScaleTemplate() [2/2]

template<class T>

DiScaleTemplate< T >::DiScaleTemplate | ( | const int | planes,
|  | const Uint16 | src_cols,
|  | const Uint16 | src_rows,
|  | const Uint16 | dest_cols,
|  | const Uint16 | dest_rows,
|  | const Uint32 | frames,
|  | const int | bits = 0 )
| inline

constructor, scale whole image.

Parameters

  planes | number of planes (1 or 3)
  src_cols | width of source image
  src_rows | height of source image
  dest_cols | width of destination image (scaled image)
  dest_rows | height of destination image
  frames | number of frames
  bits | number of bits per plane/pixel

References DiTransTemplate< T >::DiTransTemplate(), Columns, Left, Rows, and Top.

## Member Function Documentation

## ◆ bicubicPixel()

template<class T>

void DiScaleTemplate< T >::bicubicPixel | ( | const T * | src[],
|  | T * | dest[] )
| inline private

bicubic interpolation method (only for magnification)

Parameters

  src | array of pointers to source image pixels
  dest | array of pointers to destination image pixels

References DiTransTemplate< T >::Bits, DiTransTemplate< T >::clearPixel(), Columns, DiTransTemplate< T >::Dest_X, DiTransTemplate< T >::Dest_Y, DiTransTemplate< T >::Frames, isSigned(), Left, DicomImageClass::maxval(), DiTransTemplate< T >::Planes, Rows, DiTransTemplate< T >::Src_X, DiTransTemplate< T >::Src_Y, and Top.

Referenced by scaleData().

## ◆ bilinearPixel()

template<class T>

void DiScaleTemplate< T >::bilinearPixel | ( | const T * | src[],
|  | T * | dest[] )
| inline private

bilinear interpolation method (only for magnification)

Parameters

  src | array of pointers to source image pixels
  dest | array of pointers to destination image pixels

References DiTransTemplate< T >::clearPixel(), Columns, DiTransTemplate< T >::Dest_X, DiTransTemplate< T >::Dest_Y, DiTransTemplate< T >::Frames, Left, DiTransTemplate< T >::Planes, Rows, DiTransTemplate< T >::Src_X, DiTransTemplate< T >::Src_Y, and Top.

Referenced by scaleData().

## ◆ clipBorderPixel()

template<class T>

void DiScaleTemplate< T >::clipBorderPixel | ( | const T * | src[],
|  | T * | dest[],
|  | const T | value )
| inline private

clip image to specified area and add a border if necessary

Parameters

  src | array of pointers to source image pixels
  dest | array of pointers to destination image pixels
  value | value to be set outside the image boundaries

References Columns, DiTransTemplate< T >::Frames, Left, DiTransTemplate< T >::Planes, Rows, DiTransTemplate< T >::Src_X, DiTransTemplate< T >::Src_Y, and Top.

Referenced by scaleData().

## ◆ clipPixel()

template<class T>

void DiScaleTemplate< T >::clipPixel | ( | const T * | src[],
|  | T * | dest[] )
| inline private

clip image to specified area (only inside image boundaries).

This is an optimization of the more general method clipBorderPixel().

Parameters

  src | array of pointers to source image pixels
  dest | array of pointers to destination image pixels

References Columns, DiTransTemplate< T >::Dest_X, DiTransTemplate< T >::Dest_Y, DiTransTemplate< T >::Frames, Left, DiTransTemplate< T >::Planes, Rows, DiTransTemplate< T >::Src_X, DiTransTemplate< T >::Src_Y, and Top.

Referenced by scaleData().

## ◆ expandPixel()

template<class T>

void DiScaleTemplate< T >::expandPixel | ( | const T * | src[],
|  | T * | dest[] )
| inline private

free scaling method with interpolation (only for magnification)

Parameters

  src | array of pointers to source image pixels
  dest | array of pointers to destination image pixels

References Columns, DiTransTemplate< T >::Dest_X, DiTransTemplate< T >::Dest_Y, DiTransTemplate< T >::Frames, Left, DiTransTemplate< T >::Planes, Rows, DiTransTemplate< T >::Src_X, DiTransTemplate< T >::Src_Y, and Top.

Referenced by scaleData().

## ◆ interpolatePixel()

template<class T>

void DiScaleTemplate< T >::interpolatePixel | ( | const T * | src[],
|  | T * | dest[] )
| inline private

free scaling method with interpolation

Parameters

  src | array of pointers to source image pixels
  dest | array of pointers to destination image pixels

References DiTransTemplate< T >::Bits, DiTransTemplate< T >::clearPixel(), Columns, DiTransTemplate< T >::Dest_X, DiTransTemplate< T >::Dest_Y, DiTransTemplate< T >::Frames, isSigned(), DicomImageClass::maxval(), DiTransTemplate< T >::Planes, Rows, DiTransTemplate< T >::Src_X, and DiTransTemplate< T >::Src_Y.

Referenced by scaleData().

## ◆ isSigned()

template<class T>

int DiScaleTemplate< T >::isSigned | ( |  | ) | const
| inline

check whether template type T is signed or not

Returns
  true if signed, false otherwise

References DiPixelRepresentationTemplate< T >::isSigned().

Referenced by bicubicPixel(), and interpolatePixel().

## ◆ reducePixel()

template<class T>

void DiScaleTemplate< T >::reducePixel | ( | const T * | src[],
|  | T * | dest[] )
| inline private

free scaling method with interpolation (only for reduction)

Parameters

  src | array of pointers to source image pixels
  dest | array of pointers to destination image pixels

References Columns, DiTransTemplate< T >::Dest_X, DiTransTemplate< T >::Dest_Y, DiTransTemplate< T >::Frames, Left, DiTransTemplate< T >::Planes, Rows, DiTransTemplate< T >::Src_X, DiTransTemplate< T >::Src_Y, and Top.

Referenced by scaleData().

## ◆ replicatePixel()

template<class T>

void DiScaleTemplate< T >::replicatePixel | ( | const T * | src[],
|  | T * | dest[] )
| inline private

enlarge image by an integer factor.

Pixels are replicated independently in both directions.

Parameters

  src | array of pointers to source image pixels
  dest | array of pointers to destination image pixels

References Columns, DiTransTemplate< T >::Dest_X, DiTransTemplate< T >::Dest_Y, DiTransTemplate< T >::Frames, Left, DiTransTemplate< T >::Planes, Rows, DiTransTemplate< T >::Src_X, DiTransTemplate< T >::Src_Y, and Top.

Referenced by scaleData().

## ◆ scaleData()

template<class T>

void DiScaleTemplate< T >::scaleData | ( | const T * | src[],
|  | T * | dest[],
|  | const int | interpolate,
|  | const T | value = 0 )
| inline

choose scaling/clipping algorithm depending on specified parameters.

Parameters

  src | array of pointers to source image pixels
  dest | array of pointers to destination image pixels
  interpolate | preferred interpolation algorithm (0 = no interpolation, 1 = pbmplus algorithm, 2 = c't algorithm, 3 = bilinear magnification, 4 = bicubic magnification)
  value | value to be set outside the image boundaries (used for clipping, default: 0)

References bicubicPixel(), bilinearPixel(), DiTransTemplate< T >::Bits, clipBorderPixel(), clipPixel(), Columns, DiTransTemplate< T >::copyPixel(), DiTransTemplate< T >::Dest_X, DiTransTemplate< T >::Dest_Y, expandPixel(), DiTransTemplate< T >::fillPixel(), interpolatePixel(), Left, reducePixel(), replicatePixel(), Rows, scalePixel(), DiTransTemplate< T >::Src_X, DiTransTemplate< T >::Src_Y, suppressPixel(), and Top.

Referenced by DiColorScaleTemplate< T >::scale(), and DiMonoScaleTemplate< T >::scale().

## ◆ scalePixel()

template<class T>

void DiScaleTemplate< T >::scalePixel | ( | const T * | src[],
|  | T * | dest[] )
| inline private

free scaling method without interpolation.

This algorithm is necessary for overlays (1 bpp).

Parameters

  src | array of pointers to source image pixels
  dest | array of pointers to destination image pixels

References Columns, DiTransTemplate< T >::Dest_X, DiTransTemplate< T >::Dest_Y, DiTransTemplate< T >::Frames, Left, DiTransTemplate< T >::Planes, Rows, OFBitmanipTemplate< T >::setMem(), DiTransTemplate< T >::Src_X, DiTransTemplate< T >::Src_Y, and Top.

Referenced by scaleData().

## ◆ suppressPixel()

template<class T>

void DiScaleTemplate< T >::suppressPixel | ( | const T * | src[],
|  | T * | dest[] )
| inline private

shrink image by an integer divisor.

Pixels are suppressed independently in both directions.

Parameters

  src | array of pointers to source image pixels
  dest | array of pointers to destination image pixels

References Columns, DiTransTemplate< T >::Dest_X, DiTransTemplate< T >::Dest_Y, DiTransTemplate< T >::Frames, Left, DiTransTemplate< T >::Planes, Rows, DiTransTemplate< T >::Src_X, DiTransTemplate< T >::Src_Y, and Top.

Referenced by scaleData().

The documentation for this class was generated from the following file:

- dcmimgle/include/dcmtk/dcmimgle/discalet.h

Generated on Sat Mar 1 2025 for DCMTK Version 3.6.9 by Doxygen 1.13.2