--- a +++ b/combinedDeepLearningActiveContour/test_DL_ROI.m @@ -0,0 +1,80 @@ +% testing Deep Learning ROI +clear all +clc +close all +addpath('functions'); +%save('DL_ROI_params','stackedAEOptTheta','inputSize','hiddenSizeL1','hiddenSizeL2','outputSize','netconfig'); +%% + +% load parameters of Deep Learning for ROI +Mroi=100; + +% load images +load matFiles/validation_data; + +% load DL ROI +load DLconfigure/DL_ROI_params.mat; + +% choose a slice +nsl=28; +for slice_num=1:nsl + +I=t_I(:,:,slice_num); +%tt1=randi(10)*0; +%I = imtranslate(I, [tt1 tt1]); +C1=t_contours{slice_num}; + +% show image +%subplot(6,5,slice_num) +%imagesc(I); colormap(gray); +%hold on +%plot(C1(:,1),C1(:,2),'r'); + +% run DL to find ROI: LV location detection +t_yROI_h(:,:,slice_num)=DLN(I,stackedAEOptTheta,inputSize,hiddenSizeL1,hiddenSizeL2,outputSize,netconfig); +%subplot(5,6,slice_num) +%imagesc(t_yROI_h(:,:,slice_num));colormap(gray); + +% cut ROI from the image +[t_Iroi_h(:,:,slice_num),m_cnt(slice_num,:)]=mask2subImage(I,t_yROI_h(:,:,slice_num),Mroi); +subplot(5,6,slice_num) +imagesc(t_Iroi_h(:,:,slice_num));colormap(gray); + +% find center from manual contours +Cx_LV=C1(:,1);Cy_LV=C1(:,2); +[junk,cnt_man(slice_num,1),cnt_man(slice_num,2)]=polycenter(Cx_LV,Cy_LV); + +end + +save ('test_ROI.mat','t_Iroi_h','m_cnt'); + +% compute dice metric +t_dice=0; +for k=1:size(t_yROI_h,3) + img1=t_yROI_h(:,:,k); + img2=t_yROI(:,:,k); + [overlapI,dice(k)]=DiceSimilarity2DImage(img1, img2); +end +average_dice=mean(dice) + +%% +% slice_num=1; +% subI=t_Iroi_h(:,:,slice_num); +% otsuMask=otsu(subI); +% imagesc(otsuMask);colormap(gray) +%otsuMask_clean=clean_segs(otsuMask); +%imagesc(otsuMask_clean);colormap(gray) + +% otsuMask=otsuMask>1; +% subplot(1,2,1) +% imagesc(otsuMask);colormap(gray) +% CC = bwconncomp(otsuMask); +% L = labelmatrix(CC); +% L1=L==5; +% subplot(1,2,2) +% imagesc(L1);colormap(gray); +% +% % find the center of the mask +% temp=regionprops(CC, 'Centroid'); +% cnt1=temp.Centroid; +% cnt=round(cnt1);