This file is indexed.

/usr/include/dcmtk/dcmseg/segutils.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
/*
 *
 *  Copyright (C) 2015, Open Connections GmbH
 *  All rights reserved.  See COPYRIGHT file for details.
 *
 *  This software and supporting documentation are maintained by
 *
 *    OFFIS e.V.
 *    R&D Division Health
 *    Escherweg 2
 *    D-26121 Oldenburg, Germany
 *
 *
 *  Module:  dcmseg
 *
 *  Author:  Michael Onken
 *
 *  Purpose: Helper functions for the dcmseg module
 *
 */

#ifndef SEGUTILS_H
#define SEGUTILS_H

#include "dcmtk/config/osconfig.h"
#include "dcmtk/dcmseg/segdef.h"
#include "dcmtk/dcmseg/segtypes.h"

/** Class that contains helper functionality for the dcmseg module
 */
class DCMTK_DCMSEG_EXPORT DcmSegUtils
{

public:

  /** Pack the given segmentation pixel data, provided "unpacked", into
   *  the packed format expected by DICOM
   *   @param  pixelData Pixel data in unpacked format
   *   @param  rows Number of rows in the pixel data
   *   @param  columns The number of columns in the pixel data
   *   @return The frame data if successfull, NULL if an error occurs
   */
  static DcmIODTypes::Frame* packBinaryFrame(Uint8* pixelData,
                                             const Uint16 rows,
                                             const Uint16 columns);

  /** Compute the number of bytes requried for a binary pixel data frame,
   *  given the number of pixels
   *  @param  numPixels The total number of pixels
   *  @return The number of bytes required to pack the data into a binary
   *          segmentation frame
   */
  static size_t getBytesForBinaryFrame(const size_t& numPixels);

  /** Unpacks a binary segmentation frame into a "sparse" pixel data frame where
   *  every resulting byte represents a single bit of the frame being either
   *  0 (not set) or 1 (set).
   *  @param  frame The input buffer with the frame in packed format
   *  @param  rows The rows of the frame
   *  @param  cols The cols of the frame
   *  @return The segmentation frame in unpacked format. NULL in case of error.
   */
  static DcmIODTypes::Frame* unpackBinaryFrame(const DcmIODTypes::Frame* frame,
                                               Uint16 rows,
                                               Uint16 cols);

  /** Shifts the given memory block some defined number of bits to the right
   *  Bits that fall off the last byte are lost (i.e. no "cycled" shift).
   *  @param  buf The address of the memory buffer to shift
   *  @param  bufLen The length of the buf memory block in bytes
   *  @param  numBits The number of bits to shift. Must be 0 <= numBits <= 7.
   */
  static void shiftRight(Uint8* buf,
                         size_t bufLen,
                         Uint8 numBits);

  /** Shifts the given memory block some defined number of bits to the left.
   *  Bits that fall off the first byte are lost (i.e. no "cycled" shift).
   *  @param  buf The address of the memory buffer to shift
   *  @param  bufLen The length of the buf memory block in bytes
   *  @param  numBits The number of bits to shift. Must be 0 <= numBits <= 7.
   */
  static void shiftLeft(Uint8* buf,
                        size_t bufLen,
                        Uint8 numBits);

  /** Dumps a byte as binary number to a string. Only useful for
   *  debugging purposes.
   *  @param  b The byte to dump
   *  @return A string containing b as a binary number
   */
  static OFString debugByte2Bin(Uint8 b);

  /** Dumps a memory block byte for byte to the debug log stream. Only useful
   * for debugging purposes.
   *  @param  buffer The address of the memory block to dump
   *  @param  length The length of memory to be dumped
   *  @param  what String describing what is dumped.
   */
  static void debugDumpBin(Uint8* buffer,
                           size_t length,
                           const char* what);
};

#endif // SEGUTILS_H