DCMTK Version 3.7.0 OFFIS DICOM Toolkit

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. More...
| 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. More...
virtual | ~DiScaleTemplate ()
| destructor
int | isSigned () const
| check whether template type T is signed or not More...
void | scaleData (const T *src[], T *dest[], const int interpolate, const T value=0)
| choose scaling/clipping algorithm depending on specified parameters. More...

## 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). More...
void | clipBorderPixel (const T *src[], T *dest[], const T value)
| clip image to specified area and add a border if necessary More...
void | replicatePixel (const T *src[], T *dest[])
| enlarge image by an integer factor. More...
void | suppressPixel (const T *src[], T *dest[])
| shrink image by an integer divisor. More...
void | scalePixel (const T *src[], T *dest[])
| free scaling method without interpolation. More...
void | interpolatePixel (const T *src[], T *dest[])
| free scaling method with interpolation More...
void | expandPixel (const T *src[], T *dest[])
| free scaling method with interpolation (only for magnification) More...
void | reducePixel (const T *src[], T *dest[])
| free scaling method with interpolation (only for reduction) More...
void | bilinearPixel (const T *src[], T *dest[])
| bilinear interpolation method (only for magnification) More...
void | bicubicPixel (const T *src[], T *dest[])
| bicubic interpolation method (only for magnification) More...

## 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 More...
virtual | ~DiTransTemplate ()
| destructor
void | copyPixel (const T *src[], T *dest[])
| copy pixel data More...
void | fillPixel (T *dest[], const T value)
| fill pixel data with specified value More...
void | clearPixel (T *dest[])
| clear pixel data (set values to 0) More...

## 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

## ◆ 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

## 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

## ◆ 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

## ◆ 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

## ◆ 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

## ◆ 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

## ◆ 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

## ◆ 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().

## ◆ 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

## ◆ 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

## ◆ 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)

Referenced by DiColorScaleTemplate< 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

## ◆ 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

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

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

Generated on Mon Dec 15 2025 for DCMTK Version 3.7.0 by Doxygen 1.9.1