tuttelikz

orig_flatten

Aug 24th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 7.81 KB | None | 0 0
  1. clear all; close all; clc;
  2. %% Input images information
  3. %addpath('C:\Users\TBL\Documents\MATLAB\Wrinkle Quantification\Skin_Demo\Single\Wrinkle_Detection\')
  4. %img = imread('bb _333.jpg');
  5. img = imread('bb _30.jpg');
  6. img = rgb2gray(img);
  7. [H,W] = size(img);
  8. %% Parameters setup
  9. img = flip(img, 1);
  10. diff = 20; %it was 2
  11. l_crop = 156;
  12. r_crop = 10;
  13. t_crop = 45;
  14. b_crop = 5;
  15. up = 441;%443
  16. gsigma = 8;
  17. down = 222;
  18. %% Preprocessing
  19. [img_crop,H_crop,W_crop] = crop(img,H,W,l_crop,r_crop,t_crop,b_crop);
  20. [H,W] = size(img_crop);
  21. %img_crop = double(img_crop);
  22. img_filt = imgaussfilt(img_crop,4);
  23.  
  24. % figure()
  25. % imshow(img_filt)
  26.  
  27.  
  28. % for i = 1:W
  29. %     [M,I] = max(img_filt(:,i));
  30. % end
  31. [M,I] = max(img_filt);
  32. minRow = min(I);
  33.  
  34. for i = 1:W
  35.     diffShift(i) = I(i)-minRow;
  36.     lowLine1(i) = I(i)+100-diffShift(i);
  37. end
  38.  
  39.  
  40.  
  41. for i = 1:W
  42.     img_filt_new([minRow:lowLine1(i)],i) = 255;
  43.     %new_img_filt(:,:) = img_filt((I(i):I(i)+200),:);
  44. end
  45.  
  46. % imshow(img_filt_new);
  47.  
  48.  
  49. im=zeros(443,970);
  50. a=200;
  51. b=100;
  52. c = 200;
  53. for i=1:size(im,2)
  54.     j=443-I(i);
  55.     im(a+1-c:(a+j-9),i)=img_filt(I(i)-c:(I(i)-10+j),i);
  56. end
  57.  
  58. figure();
  59. imshow(im,[]);
  60.  
  61. figure();
  62. imshow(img_filt);
  63. figure()
  64. plot(I)
  65. ylim([0 450])
  66.  
  67. % im=zeros(1000,970);
  68. % a=100;
  69. % b=100;
  70. % for i=1:size(im,2)
  71. %     j=443-I(i);
  72. %     im(a+1:(a+j-9),i)=img_filt(I(i)-b:(I(i)-10+j-b),i);
  73. % end
  74. % figure();
  75. % imshow(im);
  76. %
  77. % figure();
  78. % imshow(img_filt);
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89. % %% Wrinkle surface
  90. % img_diff = filt_diff(img_filt,H_crop,W_crop,diff);
  91. % [img_line_surf,ind_line_surf,avg_index,ref_line,line1] = line_surf3(img_diff,H_crop,W_crop,diff,up,down);
  92. %
  93. % %%
  94. %
  95. % med = 80;
  96. % img_med = imgaussfilt(img_crop,gsigma);
  97. % img_med = padarray(img_med',med,'replicate','both');
  98. % img_med = padarray(img_med',med,'replicate','both');
  99. % img_med = medfilt2(img_med,[med*2 med*2]);
  100. % img_med = img_med([med+1:H+med],[med+1:W+med]);
  101. % img_filt1 = zeros(H+diff,W);
  102. % img_filt2 = zeros(H+diff,W);
  103. %
  104. % img_filt1([diff+1:H+diff],:) = img_med;
  105. % img_filt2([1:H],[1:W]) = img_med;
  106. %
  107. % img_med = img_filt1 - img_filt2;
  108. % img_med = img_med([diff+1:H+diff],:);
  109. % %%
  110. %
  111. % % figure();
  112. % % imshow(img_med,[]);
  113. %
  114. % img_line2 = zeros(H,W);
  115. % %diff = 10;
  116. % for i = 1:W
  117. %     [local_max,local_index] = max(img_med(:,i));
  118. %     img_line2(local_index-diff,i) = 255; %+2 %-10
  119. %     line2(i) = local_index-diff;
  120. % end
  121. % %%
  122. %
  123. %
  124. % for i = 1: W
  125. %     %if(line2(i)-line1(i) < 0)
  126. %         %img_wrinkle([line2(i):line1(i)],i,1) = 255;
  127. %         %img_wrinkle_only([line2(i):line1(i)],i,1) = 255;
  128. %     depth(i) = diff+line1(i) - line2(i);
  129. %     %end    
  130. % end
  131. %
  132. % maxDepth = max(depth);
  133. % colormap jet
  134. % cm = colormap % returns the current color map
  135. % %cm(1, :) = [1 1 1];
  136. % %colormap(cm)
  137. % %%          
  138. % for i = 1: W
  139. %     normDepth(i) = depth(i)/maxDepth;
  140. %     colorID = max(1, sum(normDepth(i) > [0:1/length(cm(:,1)):1]));
  141. %     myColor = cm(colorID, :); % returns your color
  142. %     depthColor(i,:,:,:) = myColor;
  143. % end    
  144. % img_wrinkle(:,:,1) = zeros(size(img_crop));
  145. % img_wrinkle(:,:,2) = zeros(size(img_crop));
  146. % img_wrinkle(:,:,3) = zeros(size(img_crop));
  147. %
  148. % %img_wrinkle_only = zeros(size(img_crop));
  149. % %%
  150. % for i = 1: W
  151. %     %if(depth(i) > 0)  %(line2(i)-line1(i) < 0)
  152. %         %img_wrinkle([line2(i):line1(i)],i,1) = 255;
  153. %     img_wrinkle([line2(i):line1(i)+diff],i,1) = depthColor(i,1);
  154. %     img_wrinkle([line2(i):line1(i)+diff],i,2) = depthColor(i,2);
  155. %     img_wrinkle([line2(i):line1(i)+diff],i,3) = depthColor(i,3);
  156. %
  157. % end
  158. %
  159. % minLine = min(line2);
  160. %
  161. % for i = 1:W
  162. %     diffShift(i) = line2(i)-minLine;
  163. %     newLine1(i) = line1(i)-diffShift(i);
  164. % end
  165. % maxLine = max(newLine1);
  166. %
  167. % for i = 1: W
  168. %     %if(depth(i) > 0)  %(line2(i)-line1(i) < 0)
  169. %         %img_wrinkle([line2(i):line1(i)],i,1) = 255;
  170. %     img_wrinkle_new([minLine:newLine1(i)+diff],i,1) = depthColor(i,1);
  171. %     img_wrinkle_new([minLine:newLine1(i)+diff],i,2) = depthColor(i,2);
  172. %     img_wrinkle_new([minLine:newLine1(i)+diff],i,3) = depthColor(i,3);
  173. % %     img_wrinkle_new([line2(i):line1(i)+diff],i,2) = depthColor(i,2);
  174. % %     img_wrinkle_new([line2(i):line1(i)+diff],i,3) = depthColor(i,3);
  175. % end
  176. % figure()
  177. % imshow(img_wrinkle_new(minLine:maxLine+diff,:,:,:))
  178. % figure()
  179. % imshow(img_wrinkle)
  180. % hold on
  181. % plot(line2)
  182. % plot(line1+diff)
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194. % [row,col,v] = find(img_filt);
  195.  
  196. %%
  197. % %
  198. % minLine = min(row);
  199. %
  200. % for i = 1:W
  201. %     for j = 1:H
  202. %         diffShift(i,j) = img_filt(:,:)-minLine;
  203. %     end
  204. % end
  205. %
  206. % figure()
  207. % imshow(diffShift)
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219. % for i = 1:W
  220. %     diffShift(i) = line2(i)-minLine;
  221. %     newLine1(i) = line1(i)-diffShift(i);
  222. % end
  223. % maxLine = max(newLine1);
  224. %
  225. % for i = 1: W
  226. %     if(depth(i) > 0)  %(line2(i)-line1(i) < 0)
  227. %         img_wrinkle([line2(i):line1(i)],i,1) = 255;
  228. %     img_wrinkle_new([minLine:newLine1(i)+diff],i,1) = depthColor(i,1);
  229. %     img_wrinkle_new([minLine:newLine1(i)+diff],i,2) = depthColor(i,2);
  230. %     img_wrinkle_new([minLine:newLine1(i)+diff],i,3) = depthColor(i,3);
  231. %     img_wrinkle_new([line2(i):line1(i)+diff],i,2) = depthColor(i,2);
  232. %     img_wrinkle_new([line2(i):line1(i)+diff],i,3) = depthColor(i,3);
  233. % end
  234. % figure()
  235. % imshow(img_wrinkle_new(minLine:maxLine+diff,:,:,:))
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247. % maxLine = max(newLine1);
  248. %
  249. % for i = 1: W
  250. %     %if(depth(i) > 0)  %(line2(i)-line1(i) < 0)
  251. %         %img_wrinkle([line2(i):line1(i)],i,1) = 255;
  252. %     img_wrinkle_new([minLine:newLine1(i)+diff],i,1) = depthColor(i,1);
  253. %     img_wrinkle_new([minLine:newLine1(i)+diff],i,2) = depthColor(i,2);
  254. %     img_wrinkle_new([minLine:newLine1(i)+diff],i,3) = depthColor(i,3);
  255. % %     img_wrinkle_new([line2(i):line1(i)+diff],i,2) = depthColor(i,2);
  256. % %     img_wrinkle_new([line2(i):line1(i)+diff],i,3) = depthColor(i,3);
  257. % end
  258.  
  259.  
  260.  
  261.  
  262.  
  263. %img_wrinkle_new = imcrop(img_wrinkle_new,[60 40 100 90]);
  264. %%
  265. % figure()
  266.  
  267. % hold on
  268. % plot(newLine2)
  269. % plot(mewLine1+diff)
  270. %
  271.  
  272.  
  273. %%
  274.  
  275.  
  276. %% Roughness
  277.  
  278. % [peak_height,valley_depth] = peak_valley(ind_line_surf,avg_index,W_crop);
  279. % [avg_rough,rms_rough,max_rough,total_rough] = roughness(peak_height,valley_depth);
  280. %% Visualization
  281. %% Wrinkle
  282. % r1 = img_crop;
  283. % g1 = r1;
  284. % b1 = r1;
  285. % r1(img_line_surf > 0) = 255;
  286. % g1(ref_line > 0) = 255; %%
  287. % b1(img_line_surf > 0) = 0;
  288. % figure('Name','Wrinkle')
  289. % imshow(cat(3,r1,g1,b1),[]);
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299. % figure();
  300. % imshow(img_med,[]);
  301.  
  302. %diff = 10;
  303. %end
  304.  
  305. %img_wrinkle(:,:,1) = img_crop;
  306. %img_wrinkle(:,:,2) = img_crop;
  307. %img_wrinkle(:,:,3) = img_crop;
  308.  
  309.  
  310. %img_wrinkle([line1(i):H],i,1) = 1;
  311. %img_wrinkle([line1(i):H],i,2) = 1;
  312. %img_wrinkle([line1(i):H],i,3) = 1;
  313.  
  314. % figure()
  315. % imshow(line2)
  316.  
  317. %figure(1)
  318. %imshow(img_line2)
  319. %figure(2)
  320. %imshow(img_line_surf)
  321.  
  322.  
  323. %figure(1)
  324. %imshow(img_line_surf)
  325. %figure(2)
  326. %imshow(img_line2)
  327.  
  328. %img_wrinkle(:,:,1) = img_crop;
  329. %img_wrinkle(:,:,2) = img_crop;
  330. %img_wrinkle(:,:,3) = img_crop;
  331. %img_wrinkle_only = zeros(size(img_crop));
  332. %depth = zeros(W);
  333.  
  334.  
  335. %figure()
  336.  
  337.  
  338. % figure()
  339. % imshow(img_line_surf)
  340. % figure()
  341. % imshow(img_crop)
  342. % hold on;
  343. % plot(line2)
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357. %colormap gray
  358. % for i = 1: W
  359. %     %if(line2(i)-line1(i) < 0)
  360. %         %img_wrinkle([line2(i):line1(i)],i,1) = 255;
  361. %     img_wrinkle([line1(i):H],i,1) = 1;
  362. %     img_wrinkle([line1(i):H],i,2) = 1;
  363. %     img_wrinkle([line1(i):H],i,3) = 1;
  364. %     %end    
  365. % end
  366.  
  367. % r1 = img_crop;
  368. % g1 = r1;
  369. % b1 = r1;
  370. % r1(img_line_surf > 0) = 255;
  371. % g1(ref_line > 0) = 255; %%
  372. % b1(img_line_surf > 0) = 0;
  373. % figure('Name','Wrinkle')
  374. % imshow(cat(3,r1,g1,b1),[]);
  375. %f = 0.568; % your float
  376.  
  377. %cm = colormap % returns the current color map
  378.  
  379. %colorID = max(1, sum(f > [0:1/length(cm(:,1)):1]));
  380.  
  381. %myColor = cm(colorID, :) % returns your color
  382.  
  383.  
  384.  
  385. %figure(1)
  386. %imshow(img_wrinkle,[])
  387.  
  388. %figure(4)
  389. %imshow(img_wrinkle_only,[])
  390.  
  391. %}
Add Comment
Please, Sign In to add comment