tuttelikz

front_main_multiple_adj[compilation]

Oct 2nd, 2017
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 5.15 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. %%
  9.  
  10. sht_tbl = 'rgh_refparam.xlsx';
  11. T = readtable(sht_tbl,'ReadRowNames',false);
  12. med_list_bf = T{1:30,6};
  13. gau_list_bf = T{1:30,7};
  14. med_list_aft = T{1:30,15};
  15. gau_list_aft = T{1:30,16};
  16.  
  17. med_arr = zeros(10,6);
  18. gsigma_arr = zeros(10,6);
  19.  
  20. med_arr(:,1) = med_list_bf(1:10,1);
  21. med_arr(:,2) = med_list_aft(1:10,1);
  22. med_arr(:,3) = med_list_bf(11:20,1);
  23. med_arr(:,4) = med_list_aft(11:20,1);
  24. med_arr(:,5) = med_list_bf(21:30,1);
  25. med_arr(:,6) = med_list_aft(21:30,1);
  26.  
  27. gsigma_arr(:,1) = gau_list_bf(1:10,1);
  28. gsigma_arr(:,2) = gau_list_aft(1:10,1);
  29. gsigma_arr(:,3) = gau_list_bf(11:20,1);
  30. gsigma_arr(:,4) = gau_list_aft(11:20,1);
  31. gsigma_arr(:,5) = gau_list_bf(21:30,1);
  32. gsigma_arr(:,6) = gau_list_aft(21:30,1);
  33.  
  34. %% Attention:
  35. % diff_idl should ne greater than diff_rl
  36. % size of median filter neighborhood should be greater than desired radius
  37.  
  38. %%
  39. data_pth = 'C:\Users\iptea\Documents\MATLAB\AMORE_ROUGHNESS';
  40.  
  41. sht_name = 'rgh_frnt.xlsx';
  42. ttl = {'part','sbj','avg_rgh','rms_rgh','max_rgh'};
  43. ttl_rng1 = 'B1:F1';
  44. ttl_rng2 = 'H1:L1';
  45. xlswrite(sht_name,ttl,ttl_rng1);
  46. xlswrite(sht_name,ttl,ttl_rng2);
  47.  
  48. max_no = 500;
  49. avg_rgh = zeros(1,max_no);
  50. rms_rgh = zeros(1,max_no);
  51. max_rgh = zeros(1,max_no);
  52. counter = 0;
  53. incr1 = 1;
  54. incr2 = 2;
  55. fprintf('Roughness calculation started:\n');
  56.  
  57. for part_no = 1:length(part)
  58.     for sbj_no = 1:length(sbj)
  59.         %fprintf('%i/%i\n', part_no*sbj_no);
  60.         fld_pth = strcat(data_pth,'\',sbj{sbj_no},'\',part{part_no},'\');
  61.         disp(fld_pth);
  62.         for img_no = 1:max_no
  63.             fprintf('.');
  64.             if mod(img_no,100) == 0
  65.                 fprintf('%i\n',img_no);
  66.             end
  67.             img_name = strcat('Image',num2str(img_no-1,'%04d'),'.jpg');
  68.             img = imread(strcat(fld_pth,img_name));
  69.             % figure()
  70.             % imshow(img);
  71.             [H,W] = size(img);
  72.  
  73.             %% Region of interest
  74.             l_crop = 130;
  75.             t_crop = 20;
  76.             r_crop = 0;
  77.             b_crop = 300;
  78.  
  79.             [img_crp,H,W] = crop(img,H,W,l_crop,r_crop,t_crop,b_crop);
  80.             % figure()
  81.             % imshow(img_crop);
  82.             %% Prefiltering
  83.             gsigma = 6;
  84.             img_gau = imgaussfilt(img_crp,gsigma);
  85.             %% Finding ideal surface
  86. %             med = 60; %90
  87.             med = med_arr(sbj_no,part_no); %60
  88.             diff_idl = 15;
  89.             img_med = medfilt2(img_gau,[med*2 med*2],'symmetric');
  90.             img_med = filt_diff(img_med,H,W,diff_idl);
  91.             [~,ind_idl,~] = find_srf(img_med,H,W); %img_idl&avg_idl not used
  92.             % figure()
  93.             % imshow(img_idl);
  94.  
  95.             %% Flattening surface according to ideal line
  96.             % Note: We put gaussian image directly
  97.             mrg = 60;
  98.             [img_flt,H,W] = flatten(img_crp,H,W,ind_idl,mrg);
  99. %             figure()
  100. %             imshow(img_flt,[]);
  101.  
  102.             %% Prefiltering flattened image
  103.             gsigma = gsigma_arr(sbj_no,part_no); %60
  104. %             gsigma = 10; %11
  105.             img_gau = imgaussfilt(img_flt,gsigma);
  106.             % figure()
  107.             % imshow(img_flt,[]);
  108.             %% Finding real surface
  109.             diff_rl = 5;
  110.             img_diff = filt_diff(img_gau,H,W,diff_rl);
  111.             % figure()
  112.             % imshow(img_flt,[]);
  113.             [~,ind_rl,avg_rl] = find_srf(img_diff,H,W); %img_rl
  114. %             figure()
  115. %             imshow(img_rl,[])
  116.             % hold on
  117.             % plot(avg_rl)
  118.  
  119.             %% Calculating roughness
  120.             [avg_rgh(img_no),rms_rgh(img_no),max_rgh(img_no)] = rgh(avg_rl,ind_rl);
  121.         end
  122.         mean_avg_rgh = mean(avg_rgh);
  123.         mean_rms_rgh = mean(rms_rgh);
  124.         mean_max_rgh = mean(max_rgh);
  125.        
  126.        
  127.         %%
  128.        
  129.         A = [part(1,part_no),sbj(1,sbj_no),num2str(mean_avg_rgh),num2str(mean_rms_rgh),...
  130.         num2str(mean_max_rgh)];
  131.    
  132.         if mod(part_no,2) == 1
  133.             rw_bef = part_no - incr1;
  134.             vrbl_rng = strcat('B',num2str(rw_bef*10+sbj_no+1),':','F',num2str(rw_bef*10+sbj_no+1));
  135.         else
  136.             rw_aft = part_no - incr2;
  137.             vrbl_rng = strcat('H',num2str(rw_aft*10+sbj_no+1),':','L',num2str(rw_aft*10+sbj_no+1));
  138.         end
  139.         xlswrite(sht_name,A,vrbl_rng);
  140.         counter = counter + 1;
  141.         fprintf('\n%i out of %i\n', counter, length(part)*length(sbj));
  142.        
  143.     end
  144.    
  145.     if mod(part_no,2) == 1
  146.         incr1 = incr1+1;
  147.     else
  148.         incr2 = incr2+1;
  149.     end
  150.    
  151. end
  152.  
  153. fprintf('Process finished.\n');
  154. % B = T{1:10,9};
  155. %%
  156.  
  157.  
  158. %% Status of roughness correctness:
  159. T = readtable(sht_name,'ReadRowNames',false);
  160. A = T{1:10,3};
  161. B = T{1:10,9};
  162. C = A > B;
  163. xlswrite(sht_name,C,'N2:N11');
  164. A = T{11:20,3};
  165. B = T{11:20,9};
  166. C = A > B;
  167. xlswrite(sht_name,C,'N12:N21');
  168. A = T{21:30,3};
  169. B = T{21:30,9};
  170. C = A > B;
  171. xlswrite(sht_name,C,'N22:N31');
  172.  
  173.  
  174. %%
Advertisement
Add Comment
Please, Sign In to add comment