⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lxdcmfilein.hpp.svn-base

📁 dicom 文件读写
💻 SVN-BASE
字号:
#ifndef LXDICOM_HPP_
#define LXDICOM_HPP_
#include <stdio.h>
#include "LXDcmFile.hpp"
enum DATA_ENDIAN
{
	LITTLE_ENDIAN,
	BIG_ENDIAN
};

enum CONVERSION_MODE
{
	MODE_DICOM2BMP = 0,
	MODE_BMP2DICOM
};

enum COMPRESSION_MODE
{
	COMPRESS_NONE = 0,
	COMPRESS_RLE,
	COMPRESS_JPEGLOSSY,
	COMPRESS_JPEGLOSSY12BIT,
	COMPRESS_JPEGLOSSLESS,
	COMPRESS_JPEGLOSSLESS2
};



class CLXDcmFileIn:public CLXDcmFile
{
public:
	CLXDcmFileIn(const char *fileName);
	~CLXDcmFileIn(void);

private:

	 void 	removeTailingSpace(char *pszStr);
	 void 	SwapWord(char *pArray, int nWords);
	 void 	SwapDWord(char *pArray, int nDWords);

	 int 	readUS(FILE *fp, DATA_ENDIAN nDataEndian); //read unsigned short
	 long int readLength(FILE *fp, bool bImplicitVR, DATA_ENDIAN nDataEndian);
	 int 	readIS(FILE *fp, bool bImplicitVR, DATA_ENDIAN nDataEndian);
	 int 	readString(FILE *fp, char *pszStr, bool bImplicitVR, DATA_ENDIAN nDataEndian);
	 float 	readDS(FILE *fp, bool bImplicitVR, DATA_ENDIAN nDataEndian);
	 char 	*convertTo8Bit(char *pData, long int nNumPixels, bool bIsSigned, short nHighBit,
								float fRescaleSlope, float fRescaleIntercept,
								float fWindowCenter, float fWindowWidth);

private:

	//int fileFormat;

	bool 	m_bValid;
	int 	m_nWidth,m_nHeigt,m_bNumBytes,m_nWindowLevel,m_nWindowWidth;
	int 	m_nDepth,m_nBitsAllocated;
	int 	m_nNumFrames;//
	char * 	m_pData;
	int 	m_nFrameSize;
	char 	m_szPhotometric[32];

public:
	int		GetImageWidth();
	int 	GetImageHeight();
	char*	GetImageData();
	int 	GetImageDepth();
	int 	GetNumBytes();//get number of bytes occupied by a pixel
	bool 	IsValid();
	int 	GetWindowLevel();
	int 	GetWindowWidth();
	int 	GetChannel();
	int 	GetBitsAllocated(); //Number of bits allocated for each pixel sample


};


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -