Switch to side-by-side view

--- a
+++ b/combinedDeepLearningActiveContour/dcom2matES.m
@@ -0,0 +1,165 @@
+% read dcom images and contours and save them into mat files
+clc 
+close all
+clear all
+addpath('functions');
+imset='validation';
+%imset='training';
+%imset='online';
+%%
+patient=4;
+
+% region of interest
+Mroi=100;
+%% read direcotory of images
+folder=['dcom/',imset,'/ES',num2str(patient),'/images'];
+%folder=uigetdir;
+[IMAGES, xthickness, ythickness, zthickness] = gatherImages(folder);
+
+[x_max,y_max,z_max]=size(IMAGES);
+scale=Mroi/x_max;
+ for k=1:z_max
+ subplot(3,5,k)
+ imagesc(IMAGES(:,:,k));colormap(gray);
+ end
+
+%% read directory of contours
+current_dir=pwd;
+%contour_dir_MC=['dcom/',imset,'/ED',num2str(patient),'/contours/MC/'];
+contour_dir_LV=['dcom/',imset,'/ES',num2str(patient),'/contours/LV/'];
+
+cd(contour_dir_LV);
+LV_contours_names = dir('*.txt'); 
+numFiles = size(LV_contours_names,1);
+
+% load contours of LV
+for k=1:numFiles
+    contours{k}=load (LV_contours_names(k,:).name);
+end
+cd(current_dir);
+
+
+nLarge=z_max;
+yROI=zeros(x_max,y_max,nLarge);
+Iroi=zeros(Mroi,Mroi,nLarge);
+for k=1:z_max
+
+    % show images
+    figure (1)
+    subplot(3,5,k)
+    I1=IMAGES(:,:,k);
+    imagesc(I1);
+    colormap(gray);
+    title(['image',num2str(k)])
+    hold on
+   
+    % read contour and plot it
+    C_LV=contours{k};
+    Cx_LV=C_LV(:,1);Cy_LV=C_LV(:,2);
+    
+    % find the contour center and plot it
+    [junk,xcnt,ycnt]=polycenter(Cx_LV,Cy_LV);
+    plot(Cx_LV,Cy_LV,'r','LineWidth',2);   
+    plot(xcnt,ycnt,'r*','markerSize',12);
+
+    % creat segmentation mask and display it
+    figure(4)
+    subplot(3,5,k)
+    LV_seg(:,:,k)= roipoly(I1,Cx_LV, Cy_LV);    
+    imagesc(LV_seg(:,:,k));
+    colormap(gray)
+    title(['mask',num2str(k)])
+    hold on
+    plot(Cx_LV,Cy_LV,'b','LineWidth',2)
+    plot(xcnt,ycnt,'b*','markerSize',12); 
+   
+    x_cnt=round(xcnt);
+    y_cnt=round(ycnt);
+    contour_center{k}=[x_cnt,y_cnt];
+    
+    % define a rectangle centered at contour
+    x_roi=x_cnt-Mroi/2:x_cnt+Mroi/2-1;
+    y_roi=y_cnt-Mroi/2:y_cnt+Mroi/2-1;
+    xroi=[x_cnt-Mroi/2,x_cnt+Mroi/2,x_cnt+Mroi/2,x_cnt-Mroi/2,x_cnt-Mroi/2];
+    yroi=[y_cnt-Mroi/2,y_cnt-Mroi/2,y_cnt+Mroi/2,y_cnt+Mroi/2,y_cnt-Mroi/2];
+
+    % create ROI mask: this will be used for training of DL-ROI
+    figure(1)
+    subplot(3,5,k)
+    yROI(:,:,k)=poly2mask(xroi,yroi,x_max,y_max);
+    contour(yROI(:,:,k),[0 0],'r')
+    plot(xcnt,ycnt,'b*','markerSize',12);
+    
+    % find ROI in the mask: this will be used as training data for DL-LV
+    figure(5)
+    subplot(3,5,k)
+    yLV(:,:,k)=LV_seg(y_roi,x_roi,k);
+    imshow(yLV(:,:,k));
+    title('yLV')
+    hold on
+    plot(50,50,'r*','markerSize',12);
+
+
+    % ROI in the image: this will be used as input training data for DL-LV 
+    figure(3)
+    subplot(3,5,k)
+    Iroi(:,:,k)=I1(y_roi,x_roi);
+    imagesc(Iroi(:,:,k));
+    colormap(gray);
+    hold on
+    plot(10,50,'r*','markerSize',12);
+    contour(yLV(:,:,k),[0 0],'r','LineWidth',2)
+    %plot(Cx_LV-x_cnt+Mroi/2+1,Cy_LV-y_cnt+Mroi/2+1,'r')
+    
+    % make sure that mask is ok
+    %figure(6)
+    %subplot(3,4,k)
+    %I_LV(:,:,k)=LV_mask(:,:,k).*Iroi(:,:,k);
+    %imagesc(I_LV(:,:,k));
+    %title('LV')
+    %colormap(gray);
+    %hold on
+    %plot(50,50,'r*','markerSize',12);
+
+    % convert mask to poly for ROI
+    %figure(6)
+    %contour(LV_mask(:,:,k));
+    %plot(xylv(:,1),xylv(:,2),'b')
+    
+end
+%% store images and region of interest on disk
+% P# stands for patient numebr
+% ED stands for End Diastole
+% yROI : this is a mask of ROI which is used as the output for traning the 
+% DL ROI
+% Iroi : this is part of the image that interests us and it will be used as
+% the input of DL-LV segmentation
+% yLV : this is a mask which is used as the output for training the DL-LV
+% segmentation
+I=IMAGES(:,:,1:nLarge);
+filename=['matFiles/',imset,'/ES/ES_P',num2str(patient)];
+save (filename, 'I', 'yROI','Iroi','yLV','contours','patient','xthickness', 'ythickness' ,'zthickness','contour_center','LV_contours_names');
+disp('results saved')
+
+% make sure sizes are matched
+sizes=[size(I,3),size(Iroi,3),size(yLV,3),size(yROI,3)]
+%%
+%figure
+%h1=disp3d(flipdim(LV_seg,3),'red',7);
+%hold on
+%h2=disp3d(flipdim(MC_seg,3),'g',7);
+%alpha(.6)
+
+%colormap(gray); 
+%z1 = ceil(1);
+%z1=z_max;
+%I1 =  IMAGES(:,:,z1); 
+%xImage = [1 y_max; 1 y_max]; %  The x data for the image corners
+%yImage = [1 1 ; x_max, x_max]; %  The y data for the image corners
+%zImage = (z_max-z1+1) * ones(2,2);   % The z data for the image corners
+
+%surf(xImage,yImage,zImage,...    %  Plot the surface
+%     'CData',I1 ,...
+%     'FaceColor','texturemap'); 
+
+