tuttelikz

slow side R1

Nov 30th, 2017
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.06 KB | None | 0 0
  1. clear all; close all; clc;
  2.  
  3. addpath('C:\Users\iptea\Documents\MATLAB\Nonreplica September_ROUGHNESS\Roughness_Amore_Skin2017\AreaRoughness\General');
  4. data_pth = 'C:\Users\iptea\Documents\MATLAB\skin_data_171017';
  5. d = dir;
  6. d = d(~ismember({d.name},{'.','..'}));
  7. %%
  8. sbj = {'1','2','3','4','5'};
  9. part = {'y_cheek','o_cheek','y_eye','o_eye','y_forearm','o_forearm'};
  10. %%
  11. sht_tbl = 'side_refparam.xlsx';
  12. T = readtable(sht_tbl,'ReadRowNames',false);
  13. l_crop_list_o = T{1:15,6};
  14. gau1_list_o = T{1:15,7};
  15. med_list_o = T{1:15,8};
  16. gau2_list_o = T{1:15,9};
  17. l_crop_list_y = T{1:15,15};
  18. gau1_list_y = T{1:15,16};
  19. med_list_y = T{1:15,17};
  20. gau2_list_y = T{1:15,18};
  21.  
  22. med_arr = zeros(5,6);
  23. gsigma2_arr = zeros(5,6);
  24. l_crop_arr = zeros(5,6);
  25. gsigma1_arr = zeros(5,6);
  26.  
  27. %%
  28. l_crop_arr(:,1) = l_crop_list_y(1:5,1);
  29. l_crop_arr(:,2) = l_crop_list_o(1:5,1);
  30. l_crop_arr(:,3) = l_crop_list_y(6:10,1);
  31. l_crop_arr(:,4) = l_crop_list_o(6:10,1);
  32. l_crop_arr(:,5) = l_crop_list_y(11:15,1);
  33. l_crop_arr(:,6) = l_crop_list_o(11:15,1);
  34.  
  35. med_arr(:,1) = med_list_y(1:5,1);
  36. med_arr(:,2) = med_list_o(1:5,1);
  37. med_arr(:,3) = med_list_y(6:10,1);
  38. med_arr(:,4) = med_list_o(6:10,1);
  39. med_arr(:,5) = med_list_y(11:15,1);
  40. med_arr(:,6) = med_list_o(11:15,1);
  41.  
  42. gsigma1_arr(:,1) = gau1_list_y(1:5,1);
  43. gsigma1_arr(:,2) = gau1_list_o(1:5,1);
  44. gsigma1_arr(:,3) = gau1_list_y(6:10,1);
  45. gsigma1_arr(:,4) = gau1_list_o(6:10,1);
  46. gsigma1_arr(:,5) = gau1_list_y(11:15,1);
  47. gsigma1_arr(:,6) = gau1_list_o(11:15,1);
  48.  
  49. gsigma2_arr(:,1) = gau2_list_y(1:5,1);
  50. gsigma2_arr(:,2) = gau2_list_o(1:5,1);
  51. gsigma2_arr(:,3) = gau2_list_y(6:10,1);
  52. gsigma2_arr(:,4) = gau2_list_o(6:10,1);
  53. gsigma2_arr(:,5) = gau2_list_y(11:15,1);
  54. gsigma2_arr(:,6) = gau2_list_o(11:15,1);
  55. %%
  56. sht_name = 'rgh_side.xlsx';
  57. ttl = {'part','sbj','avg_rgh','rms_rgh','max_rgh'};
  58. ttl_rng1 = 'B1:F1';
  59. xlswrite(sht_name,ttl,ttl_rng1);
  60. %%
  61. ttl_rng2 = 'H1:L1';
  62. xlswrite(sht_name,ttl,ttl_rng2);
  63. %%
  64. max_no = 5;
  65. avg_rgh = zeros(1,max_no);
  66. rms_rgh = zeros(1,max_no);
  67. max_rgh = zeros(1,max_no);
  68. %%
  69. counter = 0;
  70. incr1 = 1;
  71. incr2 = 2;
  72.  
  73.  
  74. for part_no = 1:length(part)
  75. for sbj_no = 1:length(sbj)
  76. fld_pth = strcat(data_pth,'\',sbj{sbj_no},'\',part{part_no},'\');
  77. disp(fld_pth);
  78.  
  79. t_crop = 20;
  80. r_crop = 55;
  81. b_crop = 500;
  82. l_crop = l_crop_arr(sbj_no,part_no);
  83. img_name = strcat('Image',num2str(2,'%04d'),'.jpg');
  84. img = imread(strcat(fld_pth,img_name));
  85. [H,W] = size(img);
  86. img3d = zeros(H,W,500);
  87. [img_crp,H,W] = crop(img,H,W,l_crop,r_crop,t_crop,b_crop);
  88.  
  89. for img_no = 1:500
  90. img_name = strcat('Image',num2str(img_no-1,'%04d'),'.jpg');
  91. img = imread(strcat(fld_pth,img_name));
  92.  
  93. %[H,W] = size(img);
  94.  
  95. %[img_crp,H,W] = crop(img,H,W,l_crop,r_crop,t_crop,b_crop);
  96.  
  97. %img3d = zeros(H,W,img_no);
  98. img3d(:,:,img_no) = img;
  99.  
  100. if mod(img_no,100) == 0
  101. fprintf('*');
  102. fprintf('%i\n', img_no);
  103. end
  104. end
  105.  
  106. [H,W,I] = size(img3d);
  107.  
  108. for img_no = 1:W
  109. fprintf('.');
  110. %if mod(img_no,1) == 0
  111. % fprintf('%i\n',img_no);
  112. %end
  113.  
  114. avgSide = img3d(:,img_no,:);
  115. % avgSide = avgSide([20:H-400],:); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  116. avgSide2 = squeeze(avgSide);
  117. img = avgSide2;
  118. %read_file_name = strcat('Image',num2str(step-1,'%04d'),'.jpg');
  119.  
  120. [H,W] = size(img);
  121.  
  122. gsigma1 = gsigma1_arr(sbj_no,part_no);
  123. img_gau = imgaussfilt(img,gsigma1);
  124.  
  125. med = med_arr(sbj_no,part_no); %med_arr(sbj_no,part_no); %60
  126. diff_idl = 2;
  127. img_med = medfilt2(img_gau,[med*2 med*2],'symmetric');
  128. img_med = filt_diff(img_med,H,W,diff_idl);
  129. [img_idl,ind_idl,~] = find_srf(img_med,H,W);
  130.  
  131. % figure()
  132. % imshow(img,[])
  133. % hold on
  134. % h2 = plot(ind_idl);
  135. % set(h2,'LineWidth',2)
  136.  
  137. mrg = 60;
  138. [img_flt,H,W] = flatten(img,H,W,ind_idl,mrg);
  139.  
  140. gsigma2 = gsigma2_arr(sbj_no,part_no);
  141. img_gau = imgaussfilt(img_flt,gsigma2);
  142.  
  143. diff_rl = 2;
  144. img_diff = filt_diff(img_gau,H,W,diff_rl);
  145.  
  146. [img_rl,ind_rl,avg_rl] = find_srf(img_diff,H,W); %img_rl
  147.  
  148. % figure()
  149. % imshow(img_flt,[]);
  150. % hold on
  151. % h4 = plot(ind_rl);
  152. % set(h4,'LineWidth',2)
  153.  
  154.  
  155. % figure()
  156. % plot(ind_rl);
  157. % hold on
  158. % plot(avg_rl);
  159.  
  160. [avg_rgh(img_no),rms_rgh(img_no),max_rgh(img_no)] = rgh(avg_rl,ind_rl);
  161. end
  162.  
  163. mean_avg_rgh = mean(avg_rgh);
  164. mean_rms_rgh = mean(rms_rgh);
  165. mean_max_rgh = mean(max_rgh);
  166.  
  167. A = [part(1,part_no),sbj(1,sbj_no),num2str(mean_avg_rgh),num2str(mean_rms_rgh),...
  168. num2str(mean_max_rgh)];
  169.  
  170.  
  171.  
  172. if mod(part_no,2) == 1
  173. rw_bef = part_no - incr1;
  174. vrbl_rng = strcat('B',num2str(rw_bef*5+sbj_no+1),':','F',num2str(rw_bef*5+sbj_no+1));
  175. else
  176. rw_aft = part_no - incr2;
  177. vrbl_rng = strcat('H',num2str(rw_aft*5+sbj_no+1),':','L',num2str(rw_aft*5+sbj_no+1));
  178. end
  179.  
  180. xlswrite(sht_name,A,vrbl_rng);
  181. counter = counter + 1;
  182. fprintf('\n%i out of %i\n', counter, length(part)*length(sbj));
  183.  
  184. end
  185.  
  186. if mod(part_no,2) == 1
  187. incr1 = incr1 + 1;
  188. else
  189. incr2 = incr2 + 1;
  190. end
  191. end
  192.  
  193. fprintf('Process finished.\n');
  194.  
  195.  
  196. % for img_no = 1:W
  197. % fprintf('.');
  198. % if mod(img_no,100) == 0
  199. % fprintf('%i\n',img_no);
  200. % end
  201. %
  202. % avgSide = img3d(:,img_no,:);
  203. % % avgSide = avgSide([20:H-400],:); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  204. % avgSide2 = squeeze(avgSide);
  205. % img = avgSide2;
  206. %
  207. % %read_file_name = strcat('Image',num2str(step-1,'%04d'),'.jpg');
  208. %
  209. % [H,W] = size(img);
  210. %
  211. % end
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219. % l_crop = 10;
  220. % t_crop = 20;
  221. % r_crop = 1;
  222. % b_crop = 1;
  223. % diffLine1 = 3;
  224. %
  225. % [img_crop,H_crop,W_crop] = crop(img,H,W,l_crop,r_crop,t_crop,b_crop);
  226. %
  227. % up = H_crop-2;
  228. % down = 222;
  229. % gsigma = 6;
  230. %
  231. % img_filt = imgaussfilt(img_crop,gsigma);
  232. % % img_line_surf_med = medfilt2(img_crop, [4 4]);
  233. % %%
  234. %
  235. % img_diff = filt_diff(img_filt,H_crop,W_crop,diffLine1);
  236. % [img_line_surf,ind_line_surf,avg_index,ref_line,line1] = line_surf3(img_diff,H_crop,W_crop,diffLine1,up,down);
  237. %
  238. % for i = 1:W_crop
  239. % img_line_surf(1:line1(i)-1,i) = 255;
  240. % end
  241. %
  242. % %%
  243. % img_line_surf = medfilt2(img_line_surf,[1 33]);
  244. % [line3V,line3I] = min(img_line_surf);
  245. %
  246. % for i = 1:W_crop
  247. % img_crop(1:line3I(i),i) = 0;
  248. % end
  249. %
  250. % [H,W] = size(img_crop);
  251. %
  252. % diffLine2 = 5;
  253. % med = 60;
  254. % %img_med = imgaussfilt(img_crop,gsigma);
  255. % img_med = padarray(img_crop',med,'replicate','both');
  256. % img_med = padarray(img_med',med,'replicate','both');
  257. % img_med = medfilt2(img_med,[med*2 med*2]);
  258. % img_med = img_med([med+1:H+med],[med+1:W+med]);
  259. % img_filt1 = zeros(H+diffLine2,W);
  260. % img_filt2 = zeros(H+diffLine2,W);
  261. %
  262. % img_filt1([diffLine2+1:H+diffLine2],:) = img_med;
  263. % img_filt2([1:H],[1:W]) = img_med;
  264. %
  265. % %%
  266. % img_med = img_filt1 - img_filt2;
  267. % img_med = img_med([diffLine2+1:H+diffLine2],:);
  268. %%
  269.  
  270. % img_line2 = zeros(H,W);
  271. %
  272. % for i = 1:W
  273. % [local_max,local_index(i)] = min(img_med(:,i));
  274. % img_line2(local_index(i),i) = 255; %+2 %-10 ubrat -diff
  275. % % line2(i) = local_index-diffLine2; %brat -diff
  276. % line2(i) = local_index(i); %brat -diff
  277. % end
  278. %
  279. % I = line2;
  280. % minRow = min(I);
  281. %
  282. % for i = 1:W
  283. % diffShift(i) = I(i)-minRow;
  284. % end
  285. %
  286. %
  287. % im = zeros(H,W);
  288. % topshift = 50;
  289.  
  290.  
  291. % for i=1:size(im,2)
  292. % j=473-I(i);
  293. % im(topshift+1:(topshift+j+1),i)=img_crop(I(i):(I(i)+j),i);
  294. % % im(topshift+1:(topshift+j-9),i)=img_crop(I(i):(I(i)-10+j),i);
  295. % %im(topshift+1-c:(topshift+j-9),i)=img_crop(I(i)-c:(I(i)-10+j),i);
  296. % end
  297.  
  298. % t_crop = 1;
  299. % l_crop = 1;
  300. % r_crop = 1;
  301. % b_crop = 550;
  302. % [H,W] = size(im);
  303. % [img_crop,H_crop,W_crop] = crop(im,H,W,l_crop,r_crop,t_crop,b_crop);
  304. %
  305. % [H,W] = size(img_crop);
  306. % up = H-2;
  307. %
  308. % img_filt = imgaussfilt(img_crop,gsigma);
  309. % img_diff = filt_diff(img_filt,H,W,diffLine1);
  310. % [img_line_surf,ind_line_surf,avg_index,ref_line,line1] = line_surf3(img_diff,H,W,diffLine1,up,down);
  311.  
  312. % figure()
  313. % imshow(img_crop,[])
  314. % hold on
  315. % plot(line1)
  316. % plot(avg_index)
  317. % hold off
  318. %
  319. % % r_crop = 1;
  320.  
  321. % [peak_height,valley_depth] = peak_valley(line1,avg_index,W);
  322. % [avg_rough(step),rms_rough(step),max_rough(step),total_rough(step)] = roughness(peak_height,valley_depth);
  323. %
  324. %
  325. % img_crop = img_crop-min(img_crop(:)); % shift data such that the smallest element of A is 0
  326. % img_crop = img_crop/max(img_crop(:)); % normalize the shifted data to 1
  327. %
  328. %
  329. % disp(strcat(OpenPath,read_file_name));
  330. %
  331. % write_file_name = read_file_name;
  332. % imwrite(img_crop,fullfile(SavePath,write_file_name),'BitDepth',8);
  333.  
  334.  
  335.  
  336.  
  337. % mean_avg_rough = mean(avg_rough);
  338. % mean_rms_rough = mean(rms_rough);
  339. % mean_max_rough = mean(max_rough);
  340. % mean_total_rough = mean(total_rough);
  341. %
  342. % A = [nm2(1,nm2L),nm1(1,nm1L),num2str(mean_avg_rough),num2str(mean_rms_rough),...
  343. % num2str(mean_max_rough),num2str(mean_total_rough)];
  344. %
  345. % xlRangeVariables = strcat('B',num2str((nm2L-1)*10+nm1L+1),':','G',num2str((nm2L-1)*10+nm1L+1));
  346. % xlswrite(filename,A,xlRangeVariables);
Advertisement
Add Comment
Please, Sign In to add comment