Dicomwrite用于保存带有窗口级别设置的dicom图像

26次观看(过去30天)
有人能帮我吗?
我想保存我的dicom图像为dicom在正确的对比度。
我是这样写的
R = dicomread (“1. dcm”);
如下图所示
然后我写了
T = imshow(R, [0 1844]);
然后我想保存为新的图像,我写道
dicomwrite (T)“S.dcm”);
但有错误
错误使用dicom_prep_ImagePixel>getPixelStorage(第204行)
无效的图像像素的数据类型。
错误在dicom_prep_ImagePixel(第13行)
[ba, bs, hb, pr] = getPixelStorage(X, txfr, useexistingbitdepth, metadata,
字典);
错误在dicom_prep_metadata中(第51行)
metadata = dicom_prep_ImagePixel(metadata, X, map, txfr,
useMetadataBitDepths,字典);
错误在dicom_create_IOD(第26行)
元数据= dicom_prep_metadata(碘uid,元数据,X, map, options.txfr,
选项。usemetadatabitdepths,字典);
错误在dicomwrite>write_message(第275行)中
[attrs, status] = dicom_create_IOD(SOP_UID, X, map,...
错误在dicomwrite中(第211行)
[status, options] = write_message(X, filename, map, metadata, options);
有人知道如何保存图像dicom为第二张图吗??

接受的答案

西蒙•陈
西蒙•陈 2021年8月18日
来自dicomread的矩阵R是原始数据,不建议修改。
大多数情况下,您只能更改DICOM头中的默认窗口级别和窗口宽度。这个默认的窗口级别和窗口宽度只在能够检索DICOM标头信息的应用程序软件中使用,从而以预期的对比度级别显示图像。
因此,如果使用image(R)而不是image(R,[]),显示的图像将始终是完全黑色的。
下面的代码为您提供了参考,您可以通过使用imtool观察到差异
清晰;clc;
X = dicomread (“old.dcm”);
元数据= dicominfo (“old.dcm”);
WC = metadata.WindowCenter;%原[40;40]
WW = metadata.WindowWidth;%原(80;80]
imtool (X,“DisplayRange”, (WC (1) WW (1), WC (1) + WW (1)]);%左图
元数据。WindowCenter = [1050;1050);
元数据。WindowWidth = [400;400);
dicomwrite (X,“New.dcm”、元数据“CreateMode”“复制”);
Y = dicomread (“New.dcm”);
newmetadata = dicominfo (“New.dcm”);
newWC = newmetadata.WindowCenter;
newWW = newmetadata.WindowWidth;
imtool (Y,“DisplayRange”, (newWC (1) -newWW (1) newWC (1) + newWW (1)]);%右图
使用原来的窗口高度和窗口宽度(左),以及修改后的WL和WW(右):
6个评论
沃尔特·罗伯森
沃尔特·罗伯森 2021年9月1日
元数据= dicominfo (“一块”);
WC = metadata.WindowCenter;%原[40;40]
WW = metadata.WindowWidth;%原(80;%左图如下图
元数据。WindowCenter = [1200;1200);
元数据。WindowWidth = [400;400);
I = dicomread(元数据);
imshow3D(permute(I,[1 2 4 3]));寻找WL和最佳影片。
k = 1:尺寸(我,4)
dicomwrite(我(:,:,:,k), sprintf (“% d.dcm”k),元数据,“CreateMode”“复制”);
结束

登录发表评论。

答案(1)

沃尔特·罗伯森
沃尔特·罗伯森 2021年8月18日
T = imshow(R, [0 1844]);
imshow()的结果是图形图像()对象的句柄。不能将图形句柄编写为图像。
你应该使用rescale();旧的MATLAB必须使用名字模糊的mat2gray()

社区寻宝

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

开始狩猎!