DCMTK、ITK、VTK读取dicom信息

DCMTK、ITK、VTK读取dicom影像数据的方法

直接上代码,调用不同的医学影像库读取dicom影像信息

1. DCMTK读取影像中的pixelData
//参数  list:为输入的图像文件名列表
bool DCMTKReadDicoms(QStringList list)
{
   
	DJDecoderRegistration::registerCodecs();
    DJEncoderRegistration::registerCodecs();
    DcmRLEEncoderRegistration::registerCodecs();
    DcmRLEDecoderRegistration::registerCodecs();
    
    DcmFileFormat dcmff_ ;
    DcmDataset *dset = dcmff_.getDataset();  
    DcmElement *element = nullptr;
    for (int i = 0; i < list.size(); i++)
    {
   
        OFCondition result;
        result = dcmff_.loadFile(list.at(i).toStdString().data());    

        dset->chooseRepresentation(EXS_LittleEndianImplicit, nullptr);
        result = dset->findAndGetElement(DCM_PixelData,
                                         element);   
        DcmPixelData *dpix = NULL;
        dpix = OFstatic_cast(DcmPixelData *, element);
        /* 因为我们有压缩数据,所以必须利用DcmPixelSequence
           以便以原始格式访问,例如解压缩
           使用外部库
         */
        DcmPixelSequence *dseq = NULL;
        E_TransferSyntax xferSyntax = EXS_Unknown;
        const DcmRepresentationParameter *rep = NULL;
        // 查找访问DCMTK中数据的正确表示所需的键 
        dpix->getOriginalRepresentationKey(xferSyntax, rep);
        // 访问原始数据表示并在像素序列内获得结果
        result = dpix->getEncapsulatedRepresentation(dset->getCurrentXfer(), rep, dseq);
        if ( 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值