matlab里根据roi在原图中截取矩形ROI

clc;clear;

root_dir=\'D:\test_rec\';

fileList=dir(root_dir);

n=length(fileList);

cntpic=0;

files={};

%±éÀúÎļþ¼Ð

for i=1:n

if strcmp(fileList(i).name,\'.\')==1||strcmp(fileList(i).name,\'..\')==1

continue;

else

fileList(i).name;

full_name=[root_dir,\'\\',fileList(i).name];

cntpic=cntpic+1;

files(cntpic)={full_name};

end

end

filename={};

c=0;

for i=1:length(files)

Modalityinfo=dir(fullfile(files{i},\'*.nii.gz\'));

c=c+1;

filename(c,:)={Modalityinfo.folder,Modalityinfo.name};

end

[num s]=size(filename);

for i=1:num

path=filename{i,1};

path_T2=char(strcat(path,\'/\',filename{i,3}));

path_label=char(strcat(path,\'/\',filename{i,4}));

T2=load_untouch_nii(path_T2);

label=load_untouch_nii(path_label);

img=double(T2.img);

label=double(label.img);

z=label(:,:,1);

d=label(:,:,1);%Ï൱ÓÚ³õʼ»¯

img_sort=label(:,:,1);

img_out=label(:,:,1);

%ÅжÏmaskÊÇ·ñΪÁ㣬²»ÎªÁãÊä³öi,±£´æͼƬÏàÓ¦²ãÃæ

[x y m]=size(label)

j=1;

%l=1;

for k = 1:m % ¿ªÊ¼ÇÐƬÊý¾ÝÂÖÑ°

z(:,:,k)=label(:,:,k);

if sum(sum(z(:,:,k)))~=0

d(:,:,j)=label(:,:,k);%±£´æd£¬dΪº¬ÓÐROIµÄͼƬ

img_sort(:,:,j)=img(:,:,k);

A=d(:,:,j);

%d1=label(:,:,1);

[r,c]=find(A==1);

for i1=min(r):max(r)%Ö±½ÓÊÇС¾ØÐÎ,×óÓÒÀ©Õ¹64¸öÏñËص㣬Ҳ¿ÉÒÔÈ¡ROIÖÐÐĵ㣬ȻºóÉÏÏÂ

%×óÓÒÀ©Õ¹128¸öÏñËصÈ

for j1=min(c):max(c)

d(i1,j1,j)=1;

img_out(:,:,j)=img_sort(:,:,j).*d(:,:,j);

end

end

j=j+1;

%l=l+1;

end

end

str=filename{i,3};

A=isstrprop(str,\'digit\');

B=str(A);

%дÈëniiÎļþ

path1=char(strcat(\'D:\mask\'));

path_mask=char(strcat(path1,\'\\',B,\'_recROI.nii.gz\'));

mask_nii=make_nii(img_out);

save_nii(mask_nii,path_mask);

end