@kv  0.0.4
Library for graph problems in C and Python
dicom.h
1 
18 #if !defined(AT_IMGPROC_H_INSIDE)
19 #error "Only <at/imgproc.h> can be included directly."
20 #endif
21 #ifndef AT_DICOM_H
22 #define AT_DICOM_H
23 #include <at/core.h>
24 #include <stdint.h>
25 AT_BEGIN_DECLS
29 typedef struct AtDicomBase{
30  const char* filename; /*00+08*/
31  char * modality; /*08+08*/
32  char * unit; /*16+08*/
33  uint8_t * photo_interpretation; /*24+08*/
34  float intercept; /*32+08*/
35  float slope; /*40+08*/
36  uint16_t samples_per_pixel; /*48+02*/
37  uint16_t bits_allocated; /*50+02*/
38  uint16_t pixel_representation; /*52+02*/
39  uint8_t pixel_data_tag_found; /*53+01*/
40  uint8_t pd[2]; /*54+02*/
41  // Total: 56 bytes
46 typedef struct AtDicomU16{
47  AtDicomBase base; /*00+56*/
48  AtArrayU16* luts; /*56+08*/
49  AtArrayU16* image;/*64+08*/
50  //72 bytes
51 }AtDicomU16;
59 at_dicomu16_read(const char* fname, AtError **error);
65 void
66 at_dicomu16_write(AtDicomU16* dicom, const char* filename);
67 
68 #define at_dicom_read(dicom, filename, error) dicom = _Generic((dicom), \
69  AtDicomU16*: at_dicomu16_read)(filename, error)
70 #define at_dicom_write(dicom, filename) _Generic((dicom), \
71  AtDicomU16*: at_dicomu16_write)(dicom, filename)
72 
73 AT_END_DECLS
74 #endif
AtArrayU16 * image
Definition: dicom.h:49
char * unit
Definition: dicom.h:32
uint16_t pixel_representation
Definition: dicom.h:38
error
Definition: error.h:28
const char * filename
Definition: dicom.h:30
uint16_t samples_per_pixel
Definition: dicom.h:36
uint8_t pixel_data_tag_found
Definition: dicom.h:39
Dicom Base.
Definition: dicom.h:29
uint8_t * photo_interpretation
Definition: dicom.h:33
AtDicomBase base
Definition: dicom.h:47
uint8_t pd[2]
Definition: dicom.h:40
AtArrayU16 * luts
Definition: dicom.h:48
uint16_t bits_allocated
Definition: dicom.h:37
float slope
Definition: dicom.h:35
float intercept
Definition: dicom.h:34
char * modality
Definition: dicom.h:31
Dicom 16 bits.
Definition: dicom.h:46