如何使用imwrite从dicom到png

5次浏览(最近30天)
大家好,我有四维图像。我想把它提取到png的每一片。下面我的编码。但是有错误。有人能帮我吗?
我= dicomread (“SPECT BENTUK LIVER.dcm”);
我=挤压(I);
I = uint8(255 * mat2gray(I));
imwrite(我“SPECTbnetukLiver.png”);
错误
使用writepng时出错(第23行)
PNG格式的图像数据必须为MxN或MxNx3。
imwrite错误(第566行)
函数宏指令(fmt_s。写入,数据,映射,文件名,paramPairs{:});

接受的答案

西蒙•陈
西蒙•陈 2021年8月23日
它可能包含多个图像,因此你需要一个一个地保存它:
以下代码供您参考:
[I, cmap] = dicomread(“SPECT BENTUK LIVER.dcm”);
J =挤压(I);
(~, ~,新西兰)= (J)大小;%检查映像数量
k = 1:新西兰
imwrite (J (:,:, k),提出,sprintf (“SPECTbnetukLiver_ % 02 d.png”k))%逐个保存图像
结束
17日评论
沃尔特·罗伯森
沃尔特·罗伯森 2021年9月2日
szdim =大小( 一个 昏暗的 返回维度的长度 昏暗的 昏暗的 是一个正整数标量。从R2019b开始,您还可以指定 昏暗的 作为一个正整数向量,一次查询多个维度的长度。例如, 大小(A, 3 [2]) 的第二个和第三个维度的长度 一个 在1 × 2的行向量中 szdim
换句话说,大小(I8,3)是I8拥有的“页面”(第三个维度)的数量。你说“我的图像有128x128x90 uint16”,所以第三维是90。

登录评论。

更多的答案(0)

社区寻宝

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

开始狩猎!