tuttelikz

hair removal

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