簡體   English   中英

重命名多幀dicom圖像

[英]Rename multi-frame dicom images

我有一個包含110張圖像的dicom文件,它們的名字是隨機的。 我試圖根據他們的SliceLocations( n )重命名它們並用dcm擴展名重寫它們,即n(1).dcm,n(2).dcm,...

任何建議,將不勝感激。

我試過了

image_list=dir('*.dcm');
for i=1:110
img=dicomread(image_list);
imgHdr = dicominfo(image_list(i).name);
  for j = size(img,4);
    dicomwrite(img(:,:,:,j),['n(' int2str(j) ').dcm'],imgHdr,'CreateMode','Copy');

  end
end

切片位置(0020,1041)是圖像平面模塊的可選屬性。 無法保證標簽具有任何價值。 您最好的選擇是使用圖像位置(患者)(0020,0032)屬性。 這將具有圖像的左上角(發送的第一個體素的中心)的x,y和z坐標。 有關進一步說明,請參見DICOM標准PS 3.3 - 2011 (PDF),附錄C.7.6.2.1。

注意: 此答案適用於“框架”,而不適用於“切片”。 這兩個顯然是DICOM文件的不同之處。

如果您不需要在您的問題中使用命名方案,一個方便的選擇是在dicomwrite函數中使用'MultiframeSingleFile'選項:

X = dicomread('MultiFrameFile.dcm');
dicomwrite(X,'n.dcm','MultiframeSingleFile',false);

這將生成名為'n_01.dcm''n_02.dcm' ,...

否則,您可以將一個簡單的for循環與int2str結合使用:

X = dicomread('MultiFrameFile.dcm');
for i = size(X,4);
    dicomwrite(X(:,:,:,i),['n(' int2str(i) ').dcm']);
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM