matlab实现多个dicom文件读取

GUI界面是这样的
在这里插入图片描述

1、首先是选择dicom文件所在位置,并将其第一个dicom文件显示出来

function dicomOpen_Callback(hObject, eventdata, handles)
% hObject    handle to dicomOpen (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global dirOutput;   %dicom所在的文件夹
global num;   %dicom文件的个数
global index;   %读取第index个dicom文件
global pathname;   %dicom文件名
pathname = uigetdir(cd,'pick a dicom folder');
if isequal(pathname,0)
    return;
end
dirOutput=dir(fullfile(pathname,'*.dcm'));
num=size(dirOutput);
index=1; %默认显示文件夹下的第一副dicom图像
filename=dirOutput(index).name; 
fpath=fullfile(pathname,filename);
disp(fpath);
axes(handles.axes1);
set(handles.axes1,'xtick',[]);
set(handles.axes1,'xtick',[]);
imgsrc=dicomread(fpath);
setappdata(handles.axes1,'imgsrc',imgsrc);
imshow(imgsrc,[]);

2、接下来是实现选择显示上/下一张dicom文件

2.1上一张按钮对应的回调函数

% --- Executes on button press in pre.
function pre_Callback(hObject, eventdata, handles)
% hObject    handle to pre (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global dirOutput;
global index;
global pathname;
if(index<2)
    f=warndlg('已经是第一张图片了哦!','警告');
    return;
end
index=index-1;
filename=dirOutput(index).name;
fpath=fullfile(pathname,filename);
disp(fpath);
axes(handles.axes1);
set(handles.axes1,'xtick',[]);
set(handles.axes1,'xtick',[]);
imgsrc=dicomread(fpath);
setappdata(handles.axes1,'imgsrc',imgsrc);
imshow(imgsrc,[]);

2.2下一张按钮对应的回调函数

% --- Executes on button press in next.
function next_Callback(hObject, eventdata, handles)
% hObject    handle to next (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global dirOutput;
global num;
global index;
global pathname;
if(index>num-1)
    f=warndlg('已经是最后图片了哦!','警告');
    return;
end
index=index+1;
filename=dirOutput(index).name;
fpath=fullfile(pathname,filename);
disp(fpath);
axes(handles.axes1);
set(handles.axes1,'xtick',[]);
set(handles.axes1,'xtick',[]);
imgsrc=dicomread(fpath);
setappdata(handles.axes1,'imgsrc',imgsrc);
imshow(imgsrc,[]);
  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值