采用VC++MFC实现,我把主要的代码给贴上来了。虽然网上也可以搜到部分代码,但是没有具体的实现过程。由于我们采用dcmtk能够将dib读取出来,但是没有调色板,所以我们需要自己构造我们的调试板,具体的代码如下:
DcmFileFormat * pDicomFile=new DcmFileFormat();
OFCondition Fcond=pDicomFile->loadFile("txt.DCM");//打开文件,此处可以根据具体路径进行更改
if(Fcond.good())
pDC->TextOut(50,50,(CString )"load file success");
else
pDC->TextOut(50,50,(CString)"load file error");
DcmDataset * pDataset=pDicomFile->getDataset();
//这个pDataset里面包含了dicom文件都属性的信息,包括病人的id,姓名等以及其他,可以通过
//OFString ofstr;
//pDataset->findAndGetOFString(DCM_PatientID,ofstr);
//来得到具体的属性,其中DCM_PatientID为dctmk内部定义的宏定义,具体请看dcmtk帮助文档
E_TransferSyntax xfer=pDataset->getOriginalXfer();
/
DicomImage * pDicomImg=new DicomImage(pDataset,xfer,0,0,0);
pDicomImg=new D