gpt4 book ai didi

c++ - 如何从dicom文件读取二进制数据?

转载 作者:行者123 更新时间:2023-12-02 10:20:49 29 4
gpt4 key购买 nike

如何从未压缩的DICOM文件读取原始图像数据并将其转储到文件中。我只是将以下代码用于压缩文件。使用dcmtk库

dataSet->findAndGetElement(DCM_PixelData, element);
pixDataElem = OFstatic_cast(DcmPixelData*, element);

DcmPixelSequence *pixelSequence = NULL;
E_TransferSyntax tran_Syntax = EXS_Unknown;
const DcmRepresentationParameter *representation = NULL;

// Find the key that is needed to access the right representation of the data within DCMTK
pixDataElem->getOriginalRepresentationKey(tran_Syntax, representation);
//pixDataElem->getCurrentRepresentationKey(tran_Syntax, representation);

// Access original data representation and get result within pixel sequence
pixDataElem->getEncapsulatedRepresentation(tran_Syntax, representation, pixelSequence);


DcmPixelItem *pixelItem = NULL;
//Access the First frame by skipping the offset table...
pixelSequence->getItem(pixelItem, 1);

Uint8 *pixels = NULL;
pixDataElem = (DcmPixelData*)pixelItem;
pixDataElem->getUint8Array(pixels);
Uint8 *pixels = NULL;
pixDataElem->getUint8Array(pixels);
//Writing the Raw data to a file...
FILE *file;
file = fopen("D:\\DicomImage.jpeg", "wb");
fwrite(pixels, sizeof(char), imageSize, file);
cout << "File write Completed and the File is closed Successfully" << endl;

如何使用dcmtk库从c++中具有许多帧的未压缩文件中提取图像数据?

最佳答案

基本上,您可以使用相同的代码,但无需压缩(实际上是更简单的情况...)

dataSet->findAndGetElement(DCM_PixelData, element);
pixDataElem = OFstatic_cast(DcmPixelData*, element);

Uint8 *pixels = NULL;
pixDataElem->getUint8Array(pixels);

//Writing the Raw data to a file...
FILE *file;
file = fopen("D:\\DicomImage.raw", "wb");
// frameSize is the size of a single frame
fwrite(pixels + frameSize * frameIndex, sizeof(char), frameSize, file);
cout << "File write Completed and the File is closed Successfully" << endl;

(这超出了我的头脑,因此无法保证完整性)
您得到的是原始二进制数据。如果要从中创建类似JPG的图像文件,则需要相应的图像功能,尽管这与dcmtk无关。

关于c++ - 如何从dicom文件读取二进制数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60259660/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com