clc
clear
%从dicom文件中读取数据%首先获得指定文件夹下的所有文件的文件名
directory = uigetdir('','选择指定文件夹:');
dirs=dir(directory);%dirs结构体类型,不仅包括文件名,还包含文件其他信息。
dircell=struct2cell(dirs)'; %类型转化,转化为元组类型
filenames=dircell(:,1) ;%文件类型存放在第一列
%然后根据后缀名筛选出指定类型文件并读入
[n m] = size(filenames);%获得大小
for i = 1:n
if ~isempty( strfind(filenames{i}, '.dcm') )%筛选出jpg文件
filename = filenames{i};
%filename = filename(1:end-4);
filepath = fullfile(directory,filename);
pngname = [filename(1:end-4),'.png'];
filepath_save = fullfile(directory,'png',pngname);
img = dicomread(filepath);%读取图片
img=double(img); %将灰度级映射到0~255
low=min(min(img));
high=max(max(img));
maxgray=high-low;%计算窗宽
rate=256/maxgray;
img=img*rate;
img=img+abs(min(min(img)));%加窗
img=uint8(img);%转化为8位的位图数据格
imwrite(img,filepath_save);
end
end