tuttelikz

main_auto_v2 [Calculates Roughness with Cropping]

Aug 30th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 17.62 KB | None | 0 0
  1. clear all; close all; clc;
  2.  
  3. %%
  4. %Input images information
  5. %addpath('C:\Users\TBL\Documents\MATLAB\Wrinkle Quantification\Skin_Demo\Single\Wrinkle_Detection\')
  6. %img = imread('bb _333.jpg');
  7.  
  8. %Negative degree
  9.  
  10. %addpath('C:\Users\TBL\Documents\MATLAB\1708_AMORE\02_YJ\AF_backhand')
  11. %addpath('C:\Users\TBL\Documents\MATLAB\1708_AMORE\01_KB\AF_forehead')
  12. %addpath('C:\Users\TBL\Documents\MATLAB\1708_AMORE\02_YJ\AF_forehead')
  13. %addpath('C:\Users\TBL\Documents\MATLAB\1708_AMORE\02_YJ\AF_forehead')
  14.  
  15. % zero degree
  16. %addpath('C:\Users\TBL\Documents\MATLAB\1708_AMORE\01_KB\AF_backhand')
  17. %addpath('C:\Users\TBL\Documents\MATLAB\1708_AMORE\01_KB\AF_backhand')
  18. %addpath('C:\Users\TBL\Documents\MATLAB\1708_AMORE\10_MR\AF_forearm')
  19. %addpath('C:\Users\TBL\Documents\MATLAB\1708_AMORE\08_MA\   forearm')
  20.  
  21. % Positive degree
  22. %addpath('C:\Users\TBL\Documents\MATLAB\1708_AMORE\06_HG\AF_forehead') %Net
  23. %volosa
  24. %addpath('C:\Users\TBL\Documents\MATLAB\1708_AMORE\04_HG\AF_forehead')
  25. %addpath('C:\Users\TBL\Documents\MATLAB\1708_AMORE\03_PU\AF_forehead')
  26.  
  27. addpath('C:\Users\TBL\Documents\MATLAB\1708_AMORE\06_HG\AF_forehead')
  28. %addpath('C:\Users\TBL\Documents\MATLAB\1708_AMORE\06_HG\forehead');
  29. %addpath('C:\Users\TBL\Documents\MATLAB\1708_AMORE\07_EJ\AF_forearm')
  30. %addpath('C:\Users\TBL\Documents\MATLAB\1708_AMORE\10_MR\forehead')
  31.  
  32. %addpath('C:\Users\TBL\Documents\MATLAB\1708_AMORE\05_HR\AF_forehead')  %Volosy
  33. img = imread('Image0259.jpg');
  34. %img = imread('Image0499.jpg');
  35.  
  36. %img = rgb2gray(img);
  37. %imshow(img);
  38. [H,W] = size(img);
  39.  
  40. %% Parameters setup
  41. [lm,li] = max(img(5:H,51:W));
  42. minDepth = min(li)
  43. maxDepth = max(li)
  44. %%
  45.  
  46. diff = 20; %it was 2
  47. l_crop = 50;
  48. r_crop = 1;
  49. t_crop = 14+minDepth-0.75.*minDepth;
  50. b_crop = 0.75*(H-maxDepth);
  51. %b_crop = 2*minDepth;
  52. %%
  53. up = H-2;%443
  54. gsigma = 4;
  55. down = 222;
  56. % %% Preprocessing
  57. [img_crop,H_crop,W_crop] = crop(img,H,W,l_crop,r_crop,t_crop,b_crop);
  58. % imshow(img_crop)
  59. % imshow(img_crop)
  60. %%
  61. figure()
  62. imshow(img_crop);
  63.  
  64. %%
  65. [lm,li] = max(img_crop(:,1))
  66. [rm,ri] = max(img_crop(:,W_crop))
  67. shif = ri-li;
  68. rotDeg = atand(shif/W_crop);
  69. if abs(rotDeg) > 1
  70.     img_crop = imrotate(img_crop,rotDeg);
  71. else
  72.     rotDeg = 0;
  73. end
  74. [H,W] = size(img_crop);
  75. %%
  76. figure()
  77. imshow(img_crop);
  78. %%
  79. [row,col] = find(img_crop);
  80. maxRow = max(row);
  81. minRow = min(row);
  82.  
  83. if rotDeg > 0
  84.     % Case this is rotated to left side
  85.     colLeft = find(img_crop(maxRow,:));
  86.     cLeft = max(colLeft);
  87.    
  88.     rowLeft = find(img_crop(:,cLeft));
  89.     rLeft = min(rowLeft);
  90.    
  91.     %[rLeftM,rLeftI] = max(img_crop(:,cLeft));%-30
  92.    
  93.     rLeftI = rLeft-(shif-160); %-60
  94.     %rLeftI = rLeft-min(20,(shif-100)); %-60
  95.     [img_crop,H_crop,W_crop] = crop(img_crop,H,W,cLeft,cLeft,1,rLeftI);
  96. elseif rotDeg < 0
  97.     colRight = find(img_crop(maxRow,:));
  98.     cRight = min(colRight);
  99.     cRight = W-cRight;
  100.     rowRight = find(img_crop(:,cRight));
  101.     rRight = min(rowRight);
  102.     %[rRightM,rRightI] = max(img_crop(:,cRight));%-30
  103.     rRight = rRight+abs(shif); %+40
  104.     [img_crop,H_crop,W_crop] = crop(img_crop,H,W,cRight,cRight,rRight,rRight);
  105. else
  106. end
  107.  
  108. figure()
  109. imshow(img_crop);
  110. %%
  111. img_filt = imgaussfilt(img_crop,gsigma);
  112. figure()
  113. imshow(img_filt);
  114. %img_filt = imgaussfilt(img_crop,gsigma);
  115.  
  116. %%
  117. diff = 1;
  118. img_diff = filt_diff(img_filt,H_crop,W_crop,diff);
  119. up = H_crop-2;
  120. [img_line_surf,ind_line_surf,avg_index,ref_line,line1] = line_surf3(img_diff,H_crop,W_crop,diff,up,down);
  121.  
  122. for i = 1:W_crop
  123.   img_crop(1:line1(i),i) = 0;  
  124. end
  125.  
  126. %%
  127. figure()
  128. imshow(img_crop)
  129. hold on
  130. plot(line1)
  131. hold off
  132. figure()
  133. imshow(img_line_surf)
  134. %%
  135. % diff= 1;
  136. % img_diff = filt_diff(img_filt,H_crop,W_crop,diff);
  137. % up = H_crop-2;
  138. % [img_line_surf,ind_line_surf,avg_index,ref_line,line1] = line_surf3(img_diff,H_crop,W_crop,diff,up,down);
  139.  
  140.  
  141. img_line_surf_med = medfilt2(img_crop, [4 4]);
  142. %%
  143. figure()
  144. imshow(img_line_surf_med)
  145. figure()
  146. imshow(img_crop)
  147. %%
  148.  
  149. img_diff = filt_diff(img_line_surf_med,H_crop,W_crop,diff);
  150. [img_line_surf,ind_line_surf,avg_index,ref_line,line1] = line_surf3(img_diff,H_crop,W_crop,diff,up,down);
  151.  
  152. for i = 1:W_crop
  153.   img_line_surf(1:line1(i)-1,i) = 255;  
  154. end
  155.  
  156.  
  157.  
  158.  
  159.  
  160. %%
  161. img_line_surf = medfilt2(img_line_surf,[1 19]);
  162. figure()
  163. imshow(img_line_surf);
  164. [line3V,line3I] = min(img_line_surf);
  165. figure()
  166. imshow(img_crop)
  167. hold on
  168. plot(line3I)
  169. hold off
  170.  
  171. for i = 1:W_crop
  172.   img_crop(1:line3I(i),i) = 0;  
  173. end
  174.  
  175. figure()
  176. imshow(img_crop)
  177.  
  178.  
  179.  
  180. [H,W] = size(img_crop);
  181. diff = 2;
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193. med = 60;
  194. %img_med = imgaussfilt(img_crop,gsigma);
  195. img_med = padarray(img_crop',med,'replicate','both');
  196. img_med = padarray(img_med',med,'replicate','both');
  197. img_med = medfilt2(img_med,[med*2 med*2]);
  198. img_med = img_med([med+1:H+med],[med+1:W+med]);
  199. img_filt1 = zeros(H+diff,W);
  200. img_filt2 = zeros(H+diff,W);
  201.  
  202. img_filt1([diff+1:H+diff],:) = img_med;
  203. img_filt2([1:H],[1:W]) = img_med;
  204.  
  205. %%
  206. img_med = img_filt1 - img_filt2;
  207. img_med = img_med([diff+1:H+diff],:);
  208. %%
  209.  
  210. %%
  211. figure();
  212. imshow(img_med,[]);
  213.  
  214. img_line2 = zeros(H,W);
  215.  
  216. %diff = 10;
  217. for i = 1:W
  218.     [local_max,local_index] = min(img_med(:,i));
  219.     img_line2(local_index,i) = 255; %+2 %-10    ubrat -diff
  220.     line2(i) = local_index-diff; %brat -diff
  221. end
  222.  
  223. %%
  224. figure()
  225. imshow(img_crop)
  226. hold on
  227. plot(line2)
  228. plot(line3I)
  229. hold off
  230.  
  231. [peak_height,valley_depth] = peak_valley(line3I,line2,W);
  232. [avg_rough,rms_rough,max_rough,total_rough] = roughness(peak_height,valley_depth)
  233.  
  234. [H,W] = size(img_crop);
  235.  
  236. h_temp = 249;
  237. w_temp = 849;
  238.  
  239.  
  240. l_crop = (W-w_temp)/2;
  241. r_crop = l_crop;
  242. t_crop = (H - h_temp)/2;
  243. b_crop = t_crop;
  244.  
  245. [img_crop,H_crop,W_crop] = crop(img_crop,H,W,l_crop,r_crop,t_crop,b_crop);
  246.  
  247.  
  248.  
  249. %img_line(local_index,i) = 255;
  250. %line1(i) = local_index;
  251.  
  252.  
  253. %line1(i) = local_index+diff;
  254. %img_line_surf = medfilt2(img_line_surf);
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276. % img_med_surf = medfilt1(line1);
  277. % figure()
  278. % imshow(img_crop);
  279. % hold on
  280. % plot(img_med_surf)
  281. % plot(line1)
  282. % hold off
  283.  
  284. %imshow(img_med_surf,[])
  285.  
  286.  
  287.  
  288. %img_line_surf = medfilt2(img_line_surf,[5 11]);
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296. %{
  297.  
  298.  
  299.  
  300.  
  301. %%
  302. % generate horizontal edge emphasis kernel
  303. %h = fspecial('sobel',10);
  304. % invert kernel to detect vertical edges
  305. %h = h';
  306. %h = [-1,0,0,0,1;-1,0,0,0,1;-1,0,0,0,1;-1,0,0,0,1;-1,0,0,0,1;-1,0,0,0,1]
  307. %-2,0,2;-1,0,1];
  308. %img_crop = imfilter(img_crop,h);
  309. %%
  310.  
  311.  
  312.  
  313.  
  314.  
  315. % Project (sum) image vertically to get the horizontal profile.
  316. horizontalProfile = sum(img_crop, 1);
  317. horizontalProfile = horizontalProfile.^3;
  318. plot(horizontalProfile);
  319.  
  320. threshold1 = mean(horizontalProfile)+2.5*std(horizontalProfile);
  321. %threshold = 30e+11;
  322.  
  323. for i = 1:(W_crop-1)
  324.     lineis = (horizontalProfile(i) > threshold1);
  325.     if horizontalProfile(i) > threshold1
  326.         line1(i) = line1(i-5);
  327.     end
  328. end
  329.  
  330.  
  331. figure()
  332. imshow(img_crop,[])
  333. hold on
  334. plot(line1)
  335. hold off
  336.  
  337.  
  338. %sum(horizontalProfile)
  339. %{
  340. figure()
  341. imshow(img_crop,[])
  342. hold on
  343. plot(line1)
  344. hold off
  345. %}
  346.  
  347. %}
  348.  
  349.  
  350. % [Gx, Gy] = imgradientxy(img_crop,'prewitt');
  351. % figure()
  352. % imshowpair(Gx, Gy, 'montage');
  353. %  title('Directional Gradients: x-direction, Gx (left), y-direction, Gy (right), using Prewitt method')
  354. % axis off;
  355. %
  356. % meanGx = mean(mean(abs(Gy)))
  357.  
  358.  
  359. %
  360. % for i = 1:H_crop
  361. %     for j=1:W_crop
  362. %         if Gx(i,j) > mean(Gy)
  363. %             img_crop(i,j) = 0;
  364. %         end
  365. %     end
  366. % end
  367.  
  368.  
  369.  
  370. %}
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379. %{
  380.  
  381.  
  382. %%
  383. %img_crop = double(img_crop);
  384. img_filt = imgaussfilt(img_crop,gsigma);
  385. %%
  386.  
  387. %%
  388. diff = 1;
  389. img_diff = filt_diff(img_filt,H_crop,W_crop,diff);
  390. up = H_crop-2;
  391. [img_line_surf,ind_line_surf,avg_index,ref_line,line1] = line_surf3(img_diff,H_crop,W_crop,diff,up,down);
  392.  
  393.  
  394.  
  395. for i = 1:W_crop
  396.   img_crop(1:line1(i),i) = 0;  
  397. end
  398.  
  399. img_filt = imgaussfilt(img_crop,gsigma);
  400.  
  401.  
  402. [H,W] = size(img_crop);
  403. diff = 2;
  404. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  405. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  406.  
  407. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  408.  
  409. med = 80;
  410. %img_med = imgaussfilt(img_crop,gsigma);
  411. img_med = padarray(img_filt',med,'replicate','both');
  412. img_med = padarray(img_med',med,'replicate','both');
  413. img_med = medfilt2(img_med,[med*2 med*2]);
  414. img_med = img_med([med+1:H+med],[med+1:W+med]);
  415. img_filt1 = zeros(H+diff,W);
  416. img_filt2 = zeros(H+diff,W);
  417.  
  418. img_filt1([diff+1:H+diff],:) = img_med;
  419. img_filt2([1:H],[1:W]) = img_med;
  420.  
  421. %%
  422. img_med = img_filt1 - img_filt2;
  423. img_med = img_med([diff+1:H+diff],:);
  424. %%
  425.  
  426. %%
  427. % figure();
  428. % imshow(img_med,[]);
  429. [H,W] = size(img_crop);
  430. img_line2 = zeros(H,W);
  431. %diff = 10;
  432. for i = 1:W
  433.     [local_max,local_index] = min(img_med(:,i));
  434.     img_line2(local_index,i) = 255; %+2 %-10    ubrat -diff
  435.     line2(i) = local_index; %brat -diff
  436. end
  437. %%
  438. % figure()
  439. % imshow(img_line2,[])
  440. %%
  441.  
  442. figure(1)
  443. imshow(img_crop,[])
  444. hold on
  445. plot(line1);
  446. plot(line2);
  447. hold off
  448.  
  449.  
  450. %%
  451. figure(2)
  452. imshow(img_crop,[])
  453. hold on
  454. plot(line2);
  455. hold off
  456.  
  457.  
  458.  
  459. %% Roughness
  460.  
  461. [peak_height,valley_depth] = peak_valley(line1,line2,W);
  462. [avg_rough,rms_rough,max_rough,total_rough] = roughness(peak_height,valley_depth);
  463.  
  464.  
  465. %% Visualization
  466.  
  467.  
  468. %}
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516. %someIm = img_crop(maxRow,:);
  517. %[row,col] = find(img_crop());
  518. % ind1 = img_crop(maxRow,1) != 0;
  519. % %ind1 = A(maxRow,:) == 1;
  520. % A1 = img_crop(ind1,:);
  521. %}
  522.  
  523.  
  524. %%
  525. %{
  526. figure()
  527. imshow(img_crop);
  528. figure()
  529. imshow(rotImg);
  530. %{
  531. %img_crop = double(img_crop);
  532. img_filt = imgaussfilt(img_crop,8);
  533. %%
  534. %imshow(img_filt)
  535.  
  536. %%
  537. % %% Wrinkle surface
  538. img_diff = filt_diff(img_filt,H_crop,W_crop,diff);
  539. [img_line_surf,ind_line_surf,avg_index,ref_line,line1] = line_surf3(img_diff,H_crop,W_crop,diff,up,down);
  540.  
  541. %%
  542. [lm,li] = max(img_crop(:,1))
  543. [rm,ri] = max(img_crop(:,W_crop))
  544.  
  545. rotDeg = atand((ri-li)/W_crop);
  546. rotImg = imrotate(img_crop,rotDeg);
  547. %%
  548.  
  549. %%
  550. %{
  551. figure()
  552. imshow(img_crop);
  553. figure()
  554. imshow(rotImg);
  555. %}
  556. %%
  557.  
  558. l_crop2 = 20;
  559. r_crop2 = 20;
  560. t_crop2 = 200;
  561. b_crop2 = 10;
  562.  
  563. % %% Preprocessing
  564. [img_crop2,H_2,W_2] = crop(rotImg,H_crop,W_crop,l_crop2,r_crop2,t_crop2,b_crop2);
  565.  
  566. %%
  567. figure()
  568. imshow(img_crop2);
  569.  
  570. %%
  571.  
  572.  
  573. %}
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667. %%
  668.  
  669. %figure()
  670. %imshow(img_filt,[]);
  671. %figure();
  672. %imshow(im,[]);
  673.  
  674.  
  675. % figure();
  676. % imshow(img_filt);
  677. % figure()
  678. % plot(I)
  679. % ylim([0 450])
  680.  
  681.  
  682.  
  683. %
  684. % % figure()
  685. % % imshow(img_filt)
  686. %
  687. %
  688. % % for i = 1:W
  689. % %     [M,I] = max(img_filt(:,i));
  690. % % end
  691. % [M,I] = max(img_filt);
  692. % minRow = min(I);
  693. %
  694. % for i = 1:W
  695. %     diffShift(i) = I(i)-minRow;
  696. %     lowLine1(i) = I(i)+100-diffShift(i);
  697. % end
  698. %
  699. %
  700. %
  701. % for i = 1:W
  702. %     img_filt_new([minRow:lowLine1(i)],i) = 255;
  703. %     %new_img_filt(:,:) = img_filt((I(i):I(i)+200),:);
  704. % end
  705. %
  706. % % imshow(img_filt_new);
  707. %
  708. %
  709. % im=zeros(443,970);
  710. % a=200;
  711. % b=100;
  712. % c = 200;
  713. % for i=1:size(im,2)
  714. %     j=443-I(i);
  715. %     im(a+1-c:(a+j-9),i)=img_filt(I(i)-c:(I(i)-10+j),i);
  716. % end
  717. %
  718. % figure();
  719. % imshow(im,[]);
  720. %
  721. % figure();
  722. % imshow(img_filt);
  723. % figure()
  724. % plot(I)
  725. % ylim([0 450])
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.  
  734.  
  735.  
  736.  
  737. % im=zeros(1000,970);
  738. % a=100;
  739. % b=100;
  740. % for i=1:size(im,2)
  741. %     j=443-I(i);
  742. %     im(a+1:(a+j-9),i)=img_filt(I(i)-b:(I(i)-10+j-b),i);
  743. % end
  744. % figure();
  745. % imshow(im);
  746. %
  747. % figure();
  748. % imshow(img_filt);
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759. % %% Wrinkle surface
  760. % img_diff = filt_diff(img_filt,H_crop,W_crop,diff);
  761. % [img_line_surf,ind_line_surf,avg_index,ref_line,line1] = line_surf3(img_diff,H_crop,W_crop,diff,up,down);
  762. %
  763. % %%
  764. %
  765. % med = 80;
  766. % img_med = imgaussfilt(img_crop,gsigma);
  767. % img_med = padarray(img_med',med,'replicate','both');
  768. % img_med = padarray(img_med',med,'replicate','both');
  769. % img_med = medfilt2(img_med,[med*2 med*2]);
  770. % img_med = img_med([med+1:H+med],[med+1:W+med]);
  771. % img_filt1 = zeros(H+diff,W);
  772. % img_filt2 = zeros(H+diff,W);
  773. %
  774. % img_filt1([diff+1:H+diff],:) = img_med;
  775. % img_filt2([1:H],[1:W]) = img_med;
  776. %
  777. % img_med = img_filt1 - img_filt2;
  778. % img_med = img_med([diff+1:H+diff],:);
  779. % %%
  780. %
  781. % % figure();
  782. % % imshow(img_med,[]);
  783. %
  784. % img_line2 = zeros(H,W);
  785. % %diff = 10;
  786. % for i = 1:W
  787. %     [local_max,local_index] = max(img_med(:,i));
  788. %     img_line2(local_index-diff,i) = 255; %+2 %-10
  789. %     line2(i) = local_index-diff;
  790. % end
  791. % %%
  792. %
  793. %
  794. % for i = 1: W
  795. %     %if(line2(i)-line1(i) < 0)
  796. %         %img_wrinkle([line2(i):line1(i)],i,1) = 255;
  797. %         %img_wrinkle_only([line2(i):line1(i)],i,1) = 255;
  798. %     depth(i) = diff+line1(i) - line2(i);
  799. %     %end    
  800. % end
  801. %
  802. % maxDepth = max(depth);
  803. % colormap jet
  804. % cm = colormap % returns the current color map
  805. % %cm(1, :) = [1 1 1];
  806. % %colormap(cm)
  807. % %%          
  808. % for i = 1: W
  809. %     normDepth(i) = depth(i)/maxDepth;
  810. %     colorID = max(1, sum(normDepth(i) > [0:1/length(cm(:,1)):1]));
  811. %     myColor = cm(colorID, :); % returns your color
  812. %     depthColor(i,:,:,:) = myColor;
  813. % end    
  814. % img_wrinkle(:,:,1) = zeros(size(img_crop));
  815. % img_wrinkle(:,:,2) = zeros(size(img_crop));
  816. % img_wrinkle(:,:,3) = zeros(size(img_crop));
  817. %
  818. % %img_wrinkle_only = zeros(size(img_crop));
  819. % %%
  820. % for i = 1: W
  821. %     %if(depth(i) > 0)  %(line2(i)-line1(i) < 0)
  822. %         %img_wrinkle([line2(i):line1(i)],i,1) = 255;
  823. %     img_wrinkle([line2(i):line1(i)+diff],i,1) = depthColor(i,1);
  824. %     img_wrinkle([line2(i):line1(i)+diff],i,2) = depthColor(i,2);
  825. %     img_wrinkle([line2(i):line1(i)+diff],i,3) = depthColor(i,3);
  826. %
  827. % end
  828. %
  829. % minLine = min(line2);
  830. %
  831. % for i = 1:W
  832. %     diffShift(i) = line2(i)-minLine;
  833. %     newLine1(i) = line1(i)-diffShift(i);
  834. % end
  835. % maxLine = max(newLine1);
  836. %
  837. % for i = 1: W
  838. %     %if(depth(i) > 0)  %(line2(i)-line1(i) < 0)
  839. %         %img_wrinkle([line2(i):line1(i)],i,1) = 255;
  840. %     img_wrinkle_new([minLine:newLine1(i)+diff],i,1) = depthColor(i,1);
  841. %     img_wrinkle_new([minLine:newLine1(i)+diff],i,2) = depthColor(i,2);
  842. %     img_wrinkle_new([minLine:newLine1(i)+diff],i,3) = depthColor(i,3);
  843. % %     img_wrinkle_new([line2(i):line1(i)+diff],i,2) = depthColor(i,2);
  844. % %     img_wrinkle_new([line2(i):line1(i)+diff],i,3) = depthColor(i,3);
  845. % end
  846. % figure()
  847. % imshow(img_wrinkle_new(minLine:maxLine+diff,:,:,:))
  848. % figure()
  849. % imshow(img_wrinkle)
  850. % hold on
  851. % plot(line2)
  852. % plot(line1+diff)
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.  
  864. % [row,col,v] = find(img_filt);
  865.  
  866. %%
  867. % %
  868. % minLine = min(row);
  869. %
  870. % for i = 1:W
  871. %     for j = 1:H
  872. %         diffShift(i,j) = img_filt(:,:)-minLine;
  873. %     end
  874. % end
  875. %
  876. % figure()
  877. % imshow(diffShift)
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889. % for i = 1:W
  890. %     diffShift(i) = line2(i)-minLine;
  891. %     newLine1(i) = line1(i)-diffShift(i);
  892. % end
  893. % maxLine = max(newLine1);
  894. %
  895. % for i = 1: W
  896. %     if(depth(i) > 0)  %(line2(i)-line1(i) < 0)
  897. %         img_wrinkle([line2(i):line1(i)],i,1) = 255;
  898. %     img_wrinkle_new([minLine:newLine1(i)+diff],i,1) = depthColor(i,1);
  899. %     img_wrinkle_new([minLine:newLine1(i)+diff],i,2) = depthColor(i,2);
  900. %     img_wrinkle_new([minLine:newLine1(i)+diff],i,3) = depthColor(i,3);
  901. %     img_wrinkle_new([line2(i):line1(i)+diff],i,2) = depthColor(i,2);
  902. %     img_wrinkle_new([line2(i):line1(i)+diff],i,3) = depthColor(i,3);
  903. % end
  904. % figure()
  905. % imshow(img_wrinkle_new(minLine:maxLine+diff,:,:,:))
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917. % maxLine = max(newLine1);
  918. %
  919. % for i = 1: W
  920. %     %if(depth(i) > 0)  %(line2(i)-line1(i) < 0)
  921. %         %img_wrinkle([line2(i):line1(i)],i,1) = 255;
  922. %     img_wrinkle_new([minLine:newLine1(i)+diff],i,1) = depthColor(i,1);
  923. %     img_wrinkle_new([minLine:newLine1(i)+diff],i,2) = depthColor(i,2);
  924. %     img_wrinkle_new([minLine:newLine1(i)+diff],i,3) = depthColor(i,3);
  925. % %     img_wrinkle_new([line2(i):line1(i)+diff],i,2) = depthColor(i,2);
  926. % %     img_wrinkle_new([line2(i):line1(i)+diff],i,3) = depthColor(i,3);
  927. % end
  928.  
  929.  
  930.  
  931.  
  932.  
  933. %img_wrinkle_new = imcrop(img_wrinkle_new,[60 40 100 90]);
  934. %%
  935. % figure()
  936.  
  937. % hold on
  938. % plot(newLine2)
  939. % plot(mewLine1+diff)
  940. %
  941.  
  942.  
  943. %%
  944.  
  945.  
  946. %% Roughness
  947.  
  948. % [peak_height,valley_depth] = peak_valley(ind_line_surf,avg_index,W_crop);
  949. % [avg_rough,rms_rough,max_rough,total_rough] = roughness(peak_height,valley_depth);
  950. %% Visualization
  951. %% Wrinkle
  952. % r1 = img_crop;
  953. % g1 = r1;
  954. % b1 = r1;
  955. % r1(img_line_surf > 0) = 255;
  956. % g1(ref_line > 0) = 255; %%
  957. % b1(img_line_surf > 0) = 0;
  958. % figure('Name','Wrinkle')
  959. % imshow(cat(3,r1,g1,b1),[]);
  960.  
  961.  
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969. % figure();
  970. % imshow(img_med,[]);
  971.  
  972. %diff = 10;
  973. %end
  974.  
  975. %img_wrinkle(:,:,1) = img_crop;
  976. %img_wrinkle(:,:,2) = img_crop;
  977. %img_wrinkle(:,:,3) = img_crop;
  978.  
  979.  
  980. %img_wrinkle([line1(i):H],i,1) = 1;
  981. %img_wrinkle([line1(i):H],i,2) = 1;
  982. %img_wrinkle([line1(i):H],i,3) = 1;
  983.  
  984. % figure()
  985. % imshow(line2)
  986.  
  987. %figure(1)
  988. %imshow(img_line2)
  989. %figure(2)
  990. %imshow(img_line_surf)
  991.  
  992.  
  993. %figure(1)
  994. %imshow(img_line_surf)
  995. %figure(2)
  996. %imshow(img_line2)
  997.  
  998. %img_wrinkle(:,:,1) = img_crop;
  999. %img_wrinkle(:,:,2) = img_crop;
  1000. %img_wrinkle(:,:,3) = img_crop;
  1001. %img_wrinkle_only = zeros(size(img_crop));
  1002. %depth = zeros(W);
  1003.  
  1004.  
  1005. %figure()
  1006.  
  1007.  
  1008. % figure()
  1009. % imshow(img_line_surf)
  1010. % figure()
  1011. % imshow(img_crop)
  1012. % hold on;
  1013. % plot(line2)
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027. %colormap gray
  1028. % for i = 1: Wz
  1029. %     %if(line2(i)-line1(i) < 0)
  1030. %         %img_wrinkle([line2(i):line1(i)],i,1) = 255;
  1031. %     img_wrinkle([line1(i):H],i,1) = 1;
  1032. %     img_wrinkle([line1(i):H],i,2) = 1;
  1033. %     img_wrinkle([line1(i):H],i,3) = 1;
  1034. %     %end    
  1035. % end
  1036.  
  1037. % r1 = img_crop;
  1038. % g1 = r1;
  1039. % b1 = r1;
  1040. % r1(img_line_surf > 0) = 255;
  1041. % g1(ref_line > 0) = 255; %%
  1042. % b1(img_line_surf > 0) = 0;
  1043. % figure('Name','Wrinkle')
  1044. % imshow(cat(3,r1,g1,b1),[]);
  1045. %f = 0.568; % your float
  1046.  
  1047. %cm = colormap % returns the current color map
  1048.  
  1049. %colorID = max(1, sum(f > [0:1/length(cm(:,1)):1]));
  1050.  
  1051. %myColor = cm(colorID, :) % returns your color
  1052.  
  1053.  
  1054.  
  1055. %figure(1)
  1056. %imshow(img_wrinkle,[])
  1057.  
  1058. %figure(4)
  1059. %imshow(img_wrinkle_only,[])
  1060.  
  1061. %}
Add Comment
Please, Sign In to add comment