tuttelikz

Median first and then surface [---]

Oct 2nd, 2017
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 4.53 KB | None | 0 0
  1. clear all; close all; clc;
  2. addpath('C:\Users\iptea\Documents\MATLAB\Nonreplica September_ROUGHNESS\Roughness_Amore_1\General');
  3.  
  4.  
  5. %% Attention:
  6. % diff_idl should ne greater than diff_rl
  7. % size of median filter neighborhood should be greater than desired radius
  8.  
  9. %%
  10. OpenfilePath = 'C:\Users\iptea\Documents\MATLAB\AMORE_ROUGHNESS\01_KB\backhand';
  11. img = imread([OpenfilePath,'\Image0000.jpg']);
  12. % figure()
  13. % imshow(img);
  14. [H,W] = size(img);
  15.  
  16. %% Region of interest
  17. l_crop = 130;
  18. t_crop = 20;
  19. r_crop = 0;
  20. b_crop = 300;
  21.  
  22. [img_crp,H,W] = crop(img,H,W,l_crop,r_crop,t_crop,b_crop);
  23. % figure()
  24. % imshow(img_crop);
  25.  
  26. %% Prefiltering
  27. gsigma = 6;
  28. img_gau = imgaussfilt(img_crp,gsigma);
  29.  
  30. %% Finding real surface
  31. diff_rl = 5;
  32. img_diff = filt_diff(img_gau,H,W,diff_rl);
  33. [img_rl,ind_rl,avg_rl] = find_srf(img_diff,H,W);
  34.  
  35. % figure()
  36. % imshow(img_line,[])
  37. % hold on
  38. % plot(avg_ind)
  39. %% Finding ideal surface
  40. med = 60;
  41. diff_idl = 15;
  42.  
  43. img_med = medfilt2(img_gau,[med*2 med*2],'symmetric');
  44. img_med = filt_diff(img_med,H,W,diff_idl);
  45.  
  46. [img_idl,ind_idl,avg_idl] = find_srf(img_med,H,W);
  47. % figure()
  48. % imshow(img_rl);
  49. % hold on
  50. % plot(ind_idl);
  51.  
  52. %% Flattening surface according to ideal line
  53. mrg = 50;
  54. img_flt = flatten(img_crp,H,W,ind_idl,mrg);
  55.  
  56. % figure()
  57. % imshow(img_flt,[]);
  58.  
  59. %%
  60.  
  61.  
  62. img_filt = imgaussfilt(im,gsigma);
  63. img_diff = filt_diff(img_filt,H,W,diffLine1);
  64. [img_line_surf,ind_line_surf,avg_index,ref_line,line1] = line_surf3(img_diff,H,W,diffLine1,up,down);
  65.  
  66. figure()
  67. imshow(im,[])
  68. hold on
  69. plot(line1)
  70. plot(avg_index)
  71. hold off
  72.  
  73.  
  74. % r_crop = 1;
  75.  
  76.  
  77. [peak_height,valley_depth] = peak_valley(line1,avg_index,W);
  78. [avg_rough,rms_rough,max_rough,total_rough] = roughness(peak_height,valley_depth)
  79.  
  80.  
  81. t_crop = 1;
  82. l_crop = 1;
  83. r_crop = 1;
  84. b_crop = 500;
  85. [H,W] = size(im);
  86. [img_crop,H_crop,W_crop] = crop(im,H,W,l_crop,r_crop,t_crop,b_crop);
  87.  
  88.  
  89. figure()
  90. imshow(img_crop,[])
  91.  
  92.  
  93. %}
  94.  
  95.  
  96.  
  97. % hold on
  98. % plot(line1)
  99. % plot(avg_index)
  100. % hold off
  101.  
  102.  
  103.  
  104. % figure()
  105. % imshow(img_crop,[])
  106.  
  107.        
  108. % hold off
  109. % figure()
  110. % imshow(img_line_surf)
  111.  
  112.  
  113.  
  114. %Hair removal
  115. % img_line_surf_med = medfilt2(img_crop, [4 4]);
  116.  
  117.  
  118.  
  119. % for i = 1:W_crop
  120. %   img_line_surf(1:line1(i)-1,i) = 255;  
  121. % end
  122. %
  123. % %%
  124. % img_line_surf = medfilt2(img_line_surf,[1 33]);
  125. % [line3V,line3I] = min(img_line_surf);
  126. %
  127. % for i = 1:W_crop
  128. %   img_crop(1:line3I(i),i) = 0;  
  129. % end
  130.  
  131.  
  132.  
  133. %img_med = imgaussfilt(img_crop,gsigma);
  134.  
  135. % img_med = padarray(img_filt',med,'replicate','both');
  136. % img_med = padarray(img_med',med,'replicate','both');
  137. % img_med = medfilt2(img_med,[med*2 med*2]);
  138. % img_med = img_med([med+1:H+med],[med+1:W+med]);
  139. % figure()
  140. % imshow(img_med)
  141.  
  142.  
  143.  
  144. %03_PU\forehead' crop
  145. %09_NY\forehead' crop
  146. %08_MA\backhand' crop
  147. %08_MA\forehead crop
  148. %09_NY\forehead' hair
  149. %10_MR\forehead small hair
  150. %03_PU\backhand' small hair
  151. %03_PU\forearm' small hair
  152. %04_HG\backhand' small hair
  153. %04_HG\forearm' big hair
  154. %05_HR\forearm' big hair
  155. %05_HG\backhand' big hair
  156. %07_EJ\backhand' big hair
  157.  
  158.  
  159. % img_med = ideal_surf(img_gau,diff_idl,med,H,W);
  160.  
  161.  
  162.  
  163. %     img_filt1 = zeros(H+diff,W);            % make 2d buffer for differential image
  164. %     img_filt2 = zeros(H+diff,W);    
  165. %
  166. %     img_filt1(diff+1:diff+H,:) = img_filt;   % put image data to buffer array
  167. %     img_filt2(1:H,1:W) = img_filt;            
  168. %
  169. %     img_diff = img_filt1 - img_filt2;        % calculate differential
  170. %    
  171. %     img_diff = img_diff(diff+1:diff+H,:);    % cut margin part 2 pixel.
  172. %     figure()
  173. %     imshow(img_filt1,[])
  174. %     figure()
  175. %     imshow(img_filt2,[])
  176. %     figure()
  177. %     imshow(img_diff,[])
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186. % img_line2 = zeros(H,W);
  187. %
  188. % %diff = 10;
  189. % for i = 1:W
  190. %     [local_max,local_index] = min(img_med(:,i));
  191. %     img_line2(local_index,i) = 255; %+2 %-10    ubrat -diff
  192. %     line2(i) = local_index-diffLine2; %brat -diff
  193. % end
  194. %        
  195. % % plot(img_line_surf)
  196. %
  197. % figure()
  198. % imshow(img_crop)
  199. % hold on
  200. % plot(line3I)
  201. % plot(line2)
  202. % hold off
  203.  
  204.  
  205.  
  206. % minRow = min(I);
  207. % for i = 1:W
  208. %     diffShift(i) = I(i)-minRow;
  209. %     lowLine1(i) = I(i)+100-diffShift(i);
  210. % end
  211.  
  212.  
  213. %     im(1:j+1,i) = img_crop(ind_idl(i):ind_idl(i)+j,i);
  214. %     im(topshift+1-c:(topshift+j-9),i) = img_crop(ind_idl(i)-c:(ind_idl(i)-10+j),i);
  215.  
  216. %b = 500;
  217. % hik = img_crop(ind_idl(i):ind_idl(i)+j,i);
  218. % im(topshift+1-c:(topshift+j-9),i) = img_crop(ind_idl(i)-c:(ind_idl(i)-10+j),i);
  219.  
  220.  
  221. % c = 20;
  222.  
  223.  
  224. % img_flt = zeros(H,W);
  225. % for i = 1:W
  226. %     j = H-ind_idl(i);
  227. %     img_flt(mrg:mrg+j,i) = img_crp(ind_idl(i):ind_idl(i)+j,i);
  228. % end
  229.  
  230. %473-ind
Advertisement
Add Comment
Please, Sign In to add comment