tuttelikz

Median first and then surface [---v2]

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