/usr/include/dcmtk/dcmimage/diqtpix.h is in libdcmtk-dev 3.6.2-3build3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 | /*
*
* Copyright (C) 2002-2014, OFFIS e.V.
* All rights reserved. See COPYRIGHT file for details.
*
* This software and supporting documentation were developed by
*
* OFFIS e.V.
* R&D Division Health
* Escherweg 2
* D-26121 Oldenburg, Germany
*
*
* Module: dcmimage
*
* Author: Marco Eichelberg
*
* Purpose: class DcmQuantPixel
*
*/
#ifndef DIQTPIX_H
#define DIQTPIX_H
#include "dcmtk/config/osconfig.h"
#include "dcmtk/ofstd/oftypes.h" /* for OFBool */
#include "dcmtk/dcmimage/diqttype.h" /* for DcmQuantHashSize, DcmQuantComponent */
#include "dcmtk/dcmimage/diqtstab.h" /* for DcmScaleTable */
/** objects of this class represent individual RGB pixels. This class is
* used by the color quantization classes. For efficiency considerations,
* all methods are declared inline.
*/
class DCMTK_DCMIMAGE_EXPORT DcmQuantPixel
{
public:
/** default constructor, creates black pixel
*/
DcmQuantPixel()
: red(0)
, green(0)
, blue(0)
{
}
/** copy assignment constructor
*/
DcmQuantPixel(const DcmQuantPixel& arg)
: red(arg.red)
, green(arg.green)
, blue(arg.blue)
{
}
/** destructor
*/
virtual ~DcmQuantPixel()
{
}
// we don't declare a destructor here, but the standard destructor will do.
/// comparison operator for equality
inline OFBool operator==(const DcmQuantPixel& src) const
{
return (red == src.red) && (green == src.green) && (blue == src.blue);
}
/** this method computes the luminance of the current pixel
* according to the NTSC formula. The range of the luminance equals the
* range of the underlying DcmQuantComponent type. However, the
* luminance is returned as a double.
* @return luminance of this pixel
*/
inline double luminance() const
{
return 0.299 * red + 0.587 * green + 0.114 * blue;
}
/** this method computes an unsigned long hash value for the current pixel.
* The hash algorithm is taken from Jef Poskanzer's ppm utility library.
* The return value is guaranteed to be < DcmQuantHashSize.
* @return hash value for current pixel
*/
inline unsigned long hash() const
{
return ((OFstatic_cast(unsigned long, red) * 33023UL + OFstatic_cast(unsigned long, green) * 30013UL +
OFstatic_cast(unsigned long, blue) * 27011UL) & 0x7fffffffUL) % DcmQuantHashSize;
}
/** returns the red component
* @return red component of this pixel
*/
inline DcmQuantComponent getRed() const
{
return red;
}
/** returns the green component
* @return green component of this pixel
*/
inline DcmQuantComponent getGreen() const
{
return green;
}
/** returns the blue component
* @return blue component of this pixel
*/
inline DcmQuantComponent getBlue() const
{
return blue;
}
/** assigns new R, G and B values to this pixel
* @param r new R
* @param g new G
* @param b new B
*/
inline void assign(
DcmQuantComponent r,
DcmQuantComponent g,
DcmQuantComponent b)
{
red = r;
green = g;
blue = b;
}
/** assigns new R, G and B values to this pixel
* using the given scale table in which all
* three values are looked up.
* @param r new R
* @param g new G
* @param b new B
* @param table scale table (LUT) in which R, G and B are looked up.
*/
inline void scale(
DcmQuantComponent r,
DcmQuantComponent g,
DcmQuantComponent b,
const DcmQuantScaleTable& table)
{
red = table[r];
green = table[g];
blue = table[b];
}
private:
/// red color component of this pixel
DcmQuantComponent red;
/// green color component of this pixel
DcmQuantComponent green;
/// blue color component of this pixel
DcmQuantComponent blue;
};
#endif
|