tuttelikz

front_main_multiple_pmrch[-]

Oct 2nd, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 4.35 KB | None | 0 0
  1. close all; clear all; clc;
  2. addpath('C:\Users\iptea\Documents\MATLAB\Nonreplica September_ROUGHNESS\Roughness_Amore_2\General');
  3.  
  4. sbj = {'01_KB','02_YJ','03_PU','04_HG','05_HR',...
  5.     '06_HG','07_EJ','08_MA','09_NY','10_MR'};
  6. part = {'forearm','AF_forearm','forehead','AF_forehead','backhand','AF_backhand'};
  7.  
  8. %% Attention:
  9. % diff_idl should ne greater than diff_rl
  10. % size of median filter neighborhood should be greater than desired radius
  11.  
  12. %%
  13. data_pth = 'C:\Users\iptea\Documents\MATLAB\AMORE_ROUGHNESS';
  14.  
  15. sht_name = 'rgh_frnt.xlsx';
  16. ttl = {'part','sbj','avg_rgh','rms_rgh','max_rgh'};
  17. ttl_rng = 'B1:F1';
  18. xlswrite(sht_name,ttl,ttl_rng);
  19.  
  20. max_no = 1;
  21. avg_rgh = zeros(1,max_no);
  22. rms_rgh = zeros(1,max_no);
  23. max_rgh = zeros(1,max_no);
  24. counter = 0;
  25.  
  26. fprintf('Roughness calculation started:\n');
  27.  
  28. for part_no = 1:length(part)
  29.     for sbj_no = 1:length(sbj)
  30.         %fprintf('%i/%i\n', part_no*sbj_no);
  31.         fld_pth = strcat(data_pth,'\',sbj{sbj_no},'\',part{part_no},'\');
  32.         for img_no = 1:1 %max_no
  33.             img_name = strcat('Image',num2str(img_no-1,'%04d'),'.jpg');
  34.             img = imread(strcat(fld_pth,img_name));
  35.             % figure()
  36.             % imshow(img);
  37.             [H,W] = size(img);
  38.  
  39.             %% Region of interest
  40.             l_crop = 130;
  41.             t_crop = 20;
  42.             r_crop = 0;
  43.             b_crop = 300;
  44.  
  45.             [img_crp,H,W] = crop(img,H,W,l_crop,r_crop,t_crop,b_crop);
  46.             % figure()
  47.             % imshow(img_crop);
  48.             %% Prefiltering
  49.             gsigma = 6;
  50.             img_gau = imgaussfilt(img_crp,gsigma);
  51.             %% Finding ideal surface
  52.             med = 60;
  53.             diff_idl = 15;
  54.             img_med = medfilt2(img_gau,[med*2 med*2],'symmetric');
  55.             img_med = filt_diff(img_med,H,W,diff_idl);
  56.             [~,ind_idl,~] = find_srf(img_med,H,W); %img_idl&avg_idl not used
  57.             % figure()
  58.             % imshow(img_idl);
  59.  
  60.             %% Flattening surface according to ideal line
  61.             % Note: We put gaussian image directly
  62.             mrg = 50;
  63.             [img_flt,H,W] = flatten(img_crp,H,W,ind_idl,mrg);
  64.             % figure()
  65.             % imshow(img_flt,[]);
  66.  
  67.             %% Prefiltering flattened image
  68.             gsigma = 6;
  69.             img_gau = imgaussfilt(img_flt,gsigma);
  70.  
  71.             %% Finding real surface
  72.             diff_rl = 5;
  73.             img_diff = filt_diff(img_gau,H,W,diff_rl);
  74.             [~,ind_rl,avg_rl] = find_srf(img_diff,H,W); %img_rl
  75.             % figure()
  76.             % imshow(img_rl,[])
  77.             % hold on
  78.             % plot(avg_rl)
  79.  
  80.             %% Calculating roughness
  81.             [avg_rgh(img_no),rms_rgh(img_no),max_rgh(img_no)] = rgh(avg_rl,ind_rl);
  82.         end
  83.         mean_avg_rgh = mean(avg_rgh);
  84.         mean_rms_rgh = mean(rms_rgh);
  85.         mean_max_rgh = mean(max_rgh);
  86.        
  87.         A = [part(1,part_no),sbj(1,sbj_no),num2str(mean_avg_rgh),num2str(mean_rms_rgh),...
  88.         num2str(mean_max_rgh)];
  89.    
  90.         %xlRangeVariables = strcat('B',num2str((nm2L-1)*10+nm1L+1),':','G',num2str((nm2L-1)*10+nm1L+1));
  91.         if mod(part_no,2) == 1
  92.             rw_bef = part_no - 1;
  93.             vrbl_rng = strcat('B',num2str(rw_bef*10+sbj_no+1),':','F',num2str(rw_bef*10+sbj_no+1));
  94.         else
  95.             rw_aft = part_no - 2;
  96.             vrbl_rng = strcat('H',num2str(rw_aft*10+sbj_no+1),':','L',num2str(rw_aft*10+sbj_no+1));
  97.         end
  98.         xlswrite(sht_name,A,vrbl_rng);
  99.         counter = counter + 1;
  100.         fprintf('%i out of %i\n', counter, length(part)*length(sbj));
  101.     end
  102. end
  103.  
  104. fprintf('Process finished.\n');
  105. %%
  106. % sht_name = 'rgh_frnt.xlsx';
  107. % T = readtable(sht_name,'ReadRowNames',false);
  108. % A = T{1:10,4}
  109. % B = T{1:10,9}
  110. % C = A > B
  111. % xlswrite(sht_name,C,vrbl_rng);
  112. % sht_name = 'rgh_frnt - Copy.xlsx';
  113. %cmpr_rng = strcat('N',num2str(rw_aft*10+sbj_no+1));
  114.  
  115.  
  116. T = readtable(sht_name,'ReadRowNames',false);
  117. A = T{1:10,4}
  118. B = T{1:10,9}
  119. C = A > B
  120. xlswrite(sht_name,C,'N2:N11');
  121. A = T{21:30,4}
  122. B = T{21:30,9}
  123. C = A > B
  124. xlswrite(sht_name,C,'N22:N31');
  125. A = T{41:50,4}
  126. B = T{41:50,9}
  127. C = A > B
  128. xlswrite(sht_name,C,'N42:N51');
  129.  
  130. % bef = T{rw_aft*10+sbj_no+1:rw_aft*10+sbj_no+1,4};
  131. % aft = T{rw_aft*10+sbj_no+1:rw_aft*10+sbj_no+1,9};
  132. % C = bef > aft;
  133.  
  134. %%
  135. % for part_no = 1:length(part)
  136. %     for sbj_no = 1:length(sbj)
  137. %        
  138. %     end
  139. % end
  140. %%
Advertisement
Add Comment
Please, Sign In to add comment