📄 dicom.h
字号:
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_DICOM_H__192C1501_CBDB_43D1_8269_472E6D56E8EF__INCLUDED_)
#define AFX_DICOM_H__192C1501_CBDB_43D1_8269_472E6D56E8EF__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//////定义要取的数据元素/////////
//传输语法
#define TRANSFER_GROUP 0x0002
#define TRANSFER_ELEMENT 0x0010
//ct值
#define CT_DATA_GROUP 0x7fe0
#define CT_DATA_ELEMENT 0x0010
//image plane module
#define SLICE_LOCATION_GROUP 0x0020
#define SLICE_LOCATION_ELEMENT 0x1041
#define STUDY_NUMBER_ELEMENT 0x0010
//image pixel module
#define IMAGE_GROUP 0x0028
#define WINDOW_CENTER_ELEMENT 0x1050
#define WINDOW_WIDTH_ELEMENT 0x1051
#define PIXEL_SPACING_ELEMENT 0x0030
#define RESCALE_INTERCEPT_ELEMENT 0x1052
#define RESCALE_SLOPE_ELEMENT 0x1053
#define ROWS_ELEMENT 0x0010
#define COLUMNS_ELEMENT 0x0011
//general equipment module
#define MANUFACTURE_GROUP 0x0008
#define MANUFACTURE_ELEMENT 0x0070
#define STUDY_DATA_ELEMENT 0x0020
/////////定义传输语法////////////
#define IMVR_LENDIAN "1.2.840.10008.1.2"
#define EXVR_LENDIAN "1.2.840.10008.1.2.1"
#define EXVR_BENDIAN "1.2.840.10008.1.2.2"
struct RgbQurd
{
BYTE rgbBlue;
BYTE rgbGreen;
BYTE rgbRed;
BYTE rgbReserved;
};
struct BmpHead
{
//bmp文件头信息
short int bfType;
int bfSize;
int bfReserved;
int bfOffBits;
//bmp图象信息
int biSize;
int biWidth;
int biHeight;
short int biPlanes;
short int biBitCount;
int biCompression;
int biSizeImage;
int biXPelsPerMeter;
int biYPelsPerMeter;
int biClrUsed;
int biClrImportant;
RgbQurd bmiColors[256];
};
struct DcmData
{
char* study_number;//检查号
char* study_data;//检查日期
char* slice_location;//AA浮点切片位置(实际的相对位置,以毫米为单位)
char* window_center;//AA浮点窗位
char* window_width;//AA浮点窗宽
char* pixelx_spacing;//AA浮点x轴象素空间(各个象素中心点之间的物理距离,以毫米来确定。)
char* pixely_spacing;//AA浮点y轴象素空间(各个象素中心点之间的物理距离,以毫米来确定。)
char* manufacture;//产生数字图象的设备的制造商。
char* rescale_intercept;//AA浮点截取值(b) 与存储值(SV) 与Hounsfield 单元(HU)的关系. HU= m*SV + b.
char* rescale_slope;//AA浮点斜面(在Rescale 截取(0028,1052).内指定了公式内的M )
short int rows;//图象行数
short int columns;//图象列数
char* transfer;//传输语法
int image_orderID;//片层顺序(与DICOM文件无关,本软件用)
short int ct[256][256];//ct值
BYTE pixel[256][256];//pixel值
DcmData* pNext;
};
class Dicom
{
public:
Dicom();
virtual ~Dicom();
public:
BmpHead bmphead;
readDcmfile(CString);
DcmData* p_DcmData;
static int frame_number;
private:
protected:
void BmpInfor();
char* intTOstr(int);
double strTOdouble(char*);
void ctTOpixel(DcmData*);
};
#endif // !defined(AFX_DICOM_H__192C1501_CBDB_43D1_8269_472E6D56E8EF__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -