如何设置PatientPosition和其他空间属性在编写dicom CT卷?

22日视图(30天)
我试图写dicom CT体积单和多文件形式。检查结果是可读的,我尝试读取文件(s)在 dicomreadVolume () 。下面就是这样一个尝试。
信息。StudyDescription =“描述”;
信息。SOPClassUID =“1.2.840.10008.5.1.4.1.1.2”;
信息。PixelSpacing = [1];% x和y体素的大小
信息。SliceThickness = 1;%可选
信息。SpacingBetweenSlices = 1;
信息。ImageOrientationPatient = [1, 0, 0, 0 1 0];
info.PatientPosition =“HFS中”;
状态= dicomwrite ((250250、1250),“out.DCM”信息,“CreateMode”,“复制”,“ObjectType”,
CT图像存储的,“MultiframeSingleFile”1);
警告:“SOPClassUID”和“ObjectType”参数被忽略,当“CreateMode”是“复制”。
信息= dicominfo (“out.DCM”);
显然,DICOM文件包含产生的写操作 PatientPosition 属性,因为
info.PatientPosition
ans =“HFS中”
那么,为什么 dicomreadVolume 抱怨?
V = dicomreadVolume (“out.DCM”);
错误使用images.internal.dicom.getSeriesDetails > throwMissingPatientPosition(第140行)
文件”。DCM”属性必须包含“PatientPosition”。

错误images.internal.dicom.getSeriesDetails(29)行
throwMissingPatientPosition(文件名)

错误dicomreadVolume(第101行)
[seriesFilenames, spatialInfo sliceDim] = images.internal.dicom.getSeriesDetails(文件名);
4评论
里克
里克 2022年1月26日
我只是跟着执行前几行就会抛出这个错误。试图确定这两个值的代码。我还没有搜索,看看它们实际DICOM属性,或者只是内部Matlab。无论如何,这两个是空的,导致错误。奇怪的是,该函数的对象在工作区中实际上包含了 PatientPosition 。错误信息是不正确的。我不知道这是一个错误。

登录置评。

答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!