tuttelikz

top_view_skin

Jan 15th, 2018
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 5.90 KB | None | 0 0
  1. close all; clear all; clc;
  2. addpath('C:\Users\iptea\Documents\MATLAB\Nonreplica September_ROUGHNESS\Roughness_Amore_Skin2017\General');
  3. %%
  4. data_pth = 'C:\Users\iptea\Documents\MATLAB\skin_data_171017';
  5. folder = 'F:\Amore_Skin';
  6.  
  7. d = dir;
  8. d = d(~ismember({d.name},{'.','..'}));
  9. %%
  10. sbj = {'1','2','3','4','5'};
  11. part = {'y_cheek','o_cheek','y_eye','o_eye','y_forearm','o_forearm'};
  12. %%
  13. sht_tbl = 'rgh_frnt_inp_refparams_FINALDONTTOUCH.xlsx';
  14. T = readtable(sht_tbl,'ReadRowNames',false);
  15. l_crop_list_o = T{1:15,6};
  16. gau1_list_o = T{1:15,7};
  17. med_list_o = T{1:15,8};
  18. gau2_list_o = T{1:15,9};
  19. l_crop_list_y = T{1:15,15};
  20. gau1_list_y = T{1:15,16};
  21. med_list_y = T{1:15,17};
  22. gau2_list_y = T{1:15,18};
  23.  
  24. med_arr = zeros(5,6);
  25. gsigma2_arr = zeros(5,6);
  26. l_crop_arr = zeros(5,6);
  27. gsigma1_arr = zeros(5,6);
  28.  
  29. l_crop_arr(:,1) = l_crop_list_y(1:5,1);
  30. l_crop_arr(:,2) = l_crop_list_o(1:5,1);
  31. l_crop_arr(:,3) = l_crop_list_y(6:10,1);
  32. l_crop_arr(:,4) = l_crop_list_o(6:10,1);
  33. l_crop_arr(:,5) = l_crop_list_y(11:15,1);
  34. l_crop_arr(:,6) = l_crop_list_o(11:15,1);
  35.  
  36. med_arr(:,1) = med_list_y(1:5,1);
  37. med_arr(:,2) = med_list_o(1:5,1);
  38. med_arr(:,3) = med_list_y(6:10,1);
  39. med_arr(:,4) = med_list_o(6:10,1);
  40. med_arr(:,5) = med_list_y(11:15,1);
  41. med_arr(:,6) = med_list_o(11:15,1);
  42.  
  43. gsigma1_arr(:,1) = gau1_list_y(1:5,1);
  44. gsigma1_arr(:,2) = gau1_list_o(1:5,1);
  45. gsigma1_arr(:,3) = gau1_list_y(6:10,1);
  46. gsigma1_arr(:,4) = gau1_list_o(6:10,1);
  47. gsigma1_arr(:,5) = gau1_list_y(11:15,1);
  48. gsigma1_arr(:,6) = gau1_list_o(11:15,1);
  49.  
  50. gsigma2_arr(:,1) = gau2_list_y(1:5,1);
  51. gsigma2_arr(:,2) = gau2_list_o(1:5,1);
  52. gsigma2_arr(:,3) = gau2_list_y(6:10,1);
  53. gsigma2_arr(:,4) = gau2_list_o(6:10,1);
  54. gsigma2_arr(:,5) = gau2_list_y(11:15,1);
  55. gsigma2_arr(:,6) = gau2_list_o(11:15,1);
  56.  
  57. %%
  58. sht_name = 'rgh_frnt_save_images.xlsx';
  59. ttl = {'part','sbj','avg_rgh','rms_rgh','max_rgh'};
  60. ttl_rng1 = 'B1:F1';
  61. xlswrite(sht_name,ttl,ttl_rng1);
  62. %%
  63. ttl_rng2 = 'H1:L1';
  64. xlswrite(sht_name,ttl,ttl_rng2);
  65. %%
  66.  
  67. % avg_rgh = zeros(1,max_no);
  68. % rms_rgh = zeros(1,max_no);
  69. % max_rgh = zeros(1,max_no);
  70. %%
  71. counter = 0;
  72. incr1 = 1;
  73. incr2 = 2;
  74. %%
  75. %two_di_array = zeros(1,max_no);
  76. %%
  77. for part_no = 6:6 %length(part)
  78.     for sbj_no = 4:4 %length(sbj)
  79.         fld_pth = strcat(data_pth,'\',sbj{sbj_no},'\',part{part_no},'\');
  80.         save_fld_path = strcat(folder,'\',sbj{sbj_no},'\',part{part_no},'\');
  81.        
  82.         imgFilePath = dir([fld_pth '/*.jpg']);
  83.         imgFilesNo = size(imgFilePath,1);
  84.         max_no = imgFilesNo; %imgFilesNo;
  85.         %save_fld_path = strcat(save_data_path,'\',sbj{sbj_no},'\',part{part_no},'\');
  86.         disp(fld_pth);
  87.         two_di_arr = zeros(max_no,385); %300
  88.         parfor img_no = 1:max_no
  89.         %parfor img_no = 1:max_no
  90.             pause(rand*0.01);
  91.             fprintf('|\n');
  92.            
  93. %             fprintf('.');
  94. %             if mod(img_no,100) == 0
  95. %                 fprintf('%i\n',img_no);
  96. %             end
  97.             img_name = strcat('Image',num2str(img_no-1,'%04d'),'.jpg');
  98.             img = imread(strcat(fld_pth,img_name));
  99.  
  100.             [H,W] = size(img);
  101.  
  102.             t_crop = 20;
  103.             r_crop = 55;
  104.             b_crop = 500;
  105.             l_crop = l_crop_arr(sbj_no,part_no); %145; %l_crop_arr(sbj_no,part_no);
  106.             [img_crp,H,W] = crop(img,H,W,l_crop,r_crop,t_crop,b_crop);
  107. %             figure()
  108. %             imshow(img_crp);
  109.             %%
  110.             gsigma1 = gsigma1_arr(sbj_no,part_no);
  111.  
  112.             img_gau = imgaussfilt(img_crp,gsigma1);
  113.            
  114. %             figure()
  115. %             imshow(img_gau,[]);
  116.            
  117.            
  118.             %% Finding ideal surface
  119. %             med = 60; %90
  120.             med = med_arr(sbj_no,part_no); %med_arr(sbj_no,part_no); %60
  121.             diff_idl = 2;
  122.             %med = 10;
  123.             img_med = medfilt2(img_gau,[med*2 med*2],'symmetric');
  124. %             figure()
  125. %             imshow(img_med,[]);
  126.            
  127.             img_med = filt_diff(img_med,H,W,diff_idl);
  128. %             figure()
  129. %             imshow(img_med,[]);
  130.            
  131.             [img_idl,ind_idl,~] = find_srf(img_med,H,W);
  132.            
  133.             mrg = 60;
  134.             [img_flt,H,W] = flatten(img_crp,H,W,ind_idl,mrg);
  135. %             figure()
  136. %             imshow(img_flt,[]);
  137.             gsigma2 = gsigma2_arr(sbj_no,part_no); %60 gsigma_arr(sbj_no,part_no);
  138. %             gsigma = 10; %11
  139.             img_gau = imgaussfilt(img_flt,gsigma2);
  140.            
  141.             diff_rl = 2;
  142.             img_diff = filt_diff(img_gau,H,W,diff_rl);
  143.  
  144.             [img_rl,ind_rl,avg_rl] = find_srf(img_diff,H,W); %img_rl
  145.             [hh,ww] = size(img_rl)
  146.             two_di_arr(img_no,:) = ind_rl;
  147. %             figure()
  148. %             imshow(img_rl,[]);
  149. %            
  150.             img_flt = img_flt-min(img_flt(:));
  151.             img_flt = img_flt/max(img_flt(:));
  152.             %img_filename = strcat(save_fld_path,img_name);
  153.             %imwrite(img_flt,img_filename);
  154.             %imwrite(img_flt,fullfile(save_fld_path,img_name));
  155.            
  156.         end
  157.        
  158.        
  159.         fprintf('\n%i out of %i\n', counter, length(part)*length(sbj));
  160.    
  161.     end
  162.    
  163. end
  164.  
  165. fprintf('Process finished.\n');
  166. %}
  167.  
  168. %%
  169. two_di_arr_norma = two_di_arr-min(two_di_arr(:));
  170. two_di_arr_norma = two_di_arr/max(two_di_arr(:));
  171. %%
  172. % two_di_arr_norma = two_di_arr-min(two_di_arr(:)-80);
  173. % two_di_arr_norma = two_di_arr/max(two_di_arr(:)-20);
  174. min(two_di_arr(:))
  175. max(two_di_arr(:))
  176. %%
  177. med_two_di_arr = medfilt2(two_di_arr,[7 7]);
  178. %%
  179. figure()
  180. image(med_two_di_arr,'CDataMapping' , 'scaled')
  181. caxis([60 63.5])
  182.  
  183. colormap jet
  184. colorbar
  185. %%
  186. % image(two_di_arr_norma);
  187. % colormap(gray(1));
  188. % %%
  189. %  map = [0.83, 0.83, 0.83
  190. %             0.7, 0.7, 0
  191. %             0.1, 0.5, 0.8
  192. %             0.2, 0.7, 0.6
  193. %             1, 0, 0
  194. %             ];
  195. % imshow(two_di_arr_norma, [], map);
  196. %
  197. % %%
  198. % %two_di_arr_norma = two_di_arr_norma*255;
  199. % colormap jet
  200. % image(two_di_arr_norma);
Advertisement
Add Comment
Please, Sign In to add comment