此示例显示如何为修改的DICOM图像创建新的DICOM系列。
在DICOM标准中,可以将图像组织成串联。默认情况下,当您使用元数据写入DICOM文件时,dicomwrite.
将图像放在同一系列中。当您以某种方式修改图像时,通常只会启动新的DICOM系列。要使修改的图像开始新系列的开始,请为SeriesInstanceUID元数据字段分配新的DICOM唯一标识符。
从DICOM文件中读取图像到工作区。
我= dicomread('ct-mono2-16-ankle.dcm');
显示图像。因为DICOM图像数据被签名16位数据,所以自动缩放显示范围,以使最小像素值为黑色,最大像素值是白色的。
imshow(我,'displayrange',[])
从DICOM文件中读取元数据。
info = dicominfo('ct-mono2-16-ankle.dcm');
要识别图像所属的系列,请查看seriesInstanceUID属性的值。
info.seriesinstanceuid.
ANS ='1.2.840.113619.2.1.2411.1031152382.365.736169244'
此示例通过从图像中删除所有文本来修改图像。图像中的文本显示为白色。找到图像中所有像素的最大值,这对应于白色文本。
textvalue = max(i(:));
图像的背景看起来是黑色的。找到图像中所有像素的最小值,这对应于背景。
backgroundvalue = min(i(:));
要删除文本,请将最大值的所有像素设置为最小值。
inodied = i;inodified(Imodified == textValue)= backgroundValue;
查看已处理的图像。
imshow(inodied,'displayrange',[])
要将修改后的图像写为新系列,您需要一个新的DICOM唯一标识符(UID)。使用它使用的新UIDDicomuId.
功能。DicomuId.
保证生成一个唯一的UID。
UID = dicomuid.
UID ='1.3.6.1.4.1.9590.100.1.2 .2080492052008495920520084381127831195970980273811'
将与原始DICOM文件关联的元数据中的SerieSInstanceUID字段的值设置为生成的值。
info.seriesinstanceuid = uid;
将修改后的图像写入新DICOM文件,指定修改后的元数据结构,INFO作为参数。因为您设置了seriesInstanduid值,所以写入图像是新系列的一部分。
dicomwrite(inodied,'ankle_newseries.dcm',信息);
要验证此操作,请在新文件中查看图像和seriesInstanceUID元数据字段。