/usr/include/dcmtk/dcmimage/diqtpbox.h is in libdcmtk-dev 3.6.1~20160216-4.
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 | /*
*
* 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 DcmQuantPixelBoxArray
*
*/
#ifndef DIQTPBOX_H
#define DIQTPBOX_H
#include "dcmtk/config/osconfig.h"
#define INCLUDE_CSTDLIB
#define INCLUDE_CASSERT
#include "dcmtk/ofstd/ofstdinc.h"
#include "dcmtk/dcmimage/dicdefin.h"
BEGIN_EXTERN_C
#ifdef HAVE_SYS_TYPES_H
/* needed e.g. on Solaris for definition of size_t */
#include <sys/types.h>
#endif
END_EXTERN_C
/** helper structure for class DcmQuantPixelBoxArray.
* Each object of this class represents a pixel box used in the
* Median Cut algorithm.
*/
struct DCMTK_DCMIMAGE_EXPORT DcmQuantPixelBox
{
/// index of the color histogram array where the colors represented by this box start
int ind;
/// the number of colors represented by this box
int colors;
/// the number of pixels represented by this box
unsigned long sum;
};
/// typedef for a pointer to a DcmQuantPixelBox object
typedef DcmQuantPixelBox *DcmQuantPixelBoxPointer;
/** helper class for the Median Cut algorithm. An object of
* this class maintains an array of pixel boxes which is used
* to determine a color look-up table of given size for a
* true color image.
*/
class DCMTK_DCMIMAGE_EXPORT DcmQuantPixelBoxArray
{
public:
/** constructor. Creates an array with the given number of pixel boxes.
* @param entries number of entries in array, must be > 0.
*/
DcmQuantPixelBoxArray(unsigned long entries);
/// destructor
~DcmQuantPixelBoxArray();
/** looks up an array element
* @param idx index, must be smaller than the number of entries
* with which this object was initialized
* @return non-const reference to DcmQuantPixelBox struct
*/
inline DcmQuantPixelBox& operator[](size_t idx)
{
#ifdef DEBUG
assert(idx < length);
#endif
return *(array[idx]);
}
/** sorts the given number of pixel boxes in the array,
* starting with the first array element.
* The boxes are sorted in decreasing order of the "sum" member.
* @param boxes number of boxes to sort, must be <= entries.
*/
void sort(unsigned long boxes);
private:
/// private undefined copy constructor
DcmQuantPixelBoxArray(const DcmQuantPixelBoxArray& src);
/// private undefined copy assignment operator
DcmQuantPixelBoxArray& operator=(const DcmQuantPixelBoxArray& src);
/// array of pixel boxes
DcmQuantPixelBoxPointer *array;
/// number of elements in array
unsigned long length;
};
#endif
|