Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clear all; close all; clc;
- addpath('C:\Users\iptea\Documents\MATLAB\Nonreplica September_ROUGHNESS\Roughness_Amore_1\General');
- %% Attention:
- % diff_idl should ne greater than diff_rl
- % size of median filter neighborhood should be greater than desired radius
- %%
- OpenfilePath = 'C:\Users\iptea\Documents\MATLAB\AMORE_ROUGHNESS\01_KB\backhand';
- img = imread([OpenfilePath,'\Image0000.jpg']);
- % figure()
- % imshow(img);
- [H,W] = size(img);
- %% Region of interest
- l_crop = 130;
- t_crop = 20;
- r_crop = 0;
- b_crop = 300;
- [img_crp,H,W] = crop(img,H,W,l_crop,r_crop,t_crop,b_crop);
- % figure()
- % imshow(img_crop);
- %% Prefiltering
- gsigma = 6;
- img_gau = imgaussfilt(img_crp,gsigma);
- %% Finding real surface
- diff_rl = 5;
- img_diff = filt_diff(img_gau,H,W,diff_rl);
- [img_rl,ind_rl,avg_rl] = find_srf(img_diff,H,W);
- % figure()
- % imshow(img_line,[])
- % hold on
- % plot(avg_ind)
- %% Finding ideal surface
- med = 60;
- diff_idl = 15;
- img_med = medfilt2(img_gau,[med*2 med*2],'symmetric');
- img_med = filt_diff(img_med,H,W,diff_idl);
- [img_idl,ind_idl,avg_idl] = find_srf(img_med,H,W);
- % figure()
- % imshow(img_rl);
- % hold on
- % plot(ind_idl);
- %% Flattening surface according to ideal line
- mrg = 50;
- img_flt = flatten(img_crp,H,W,ind_idl,mrg);
- % figure()
- % imshow(img_flt,[]);
- %%
- img_filt = imgaussfilt(im,gsigma);
- img_diff = filt_diff(img_filt,H,W,diffLine1);
- [img_line_surf,ind_line_surf,avg_index,ref_line,line1] = line_surf3(img_diff,H,W,diffLine1,up,down);
- figure()
- imshow(im,[])
- hold on
- plot(line1)
- plot(avg_index)
- hold off
- % r_crop = 1;
- [peak_height,valley_depth] = peak_valley(line1,avg_index,W);
- [avg_rough,rms_rough,max_rough,total_rough] = roughness(peak_height,valley_depth)
- t_crop = 1;
- l_crop = 1;
- r_crop = 1;
- b_crop = 500;
- [H,W] = size(im);
- [img_crop,H_crop,W_crop] = crop(im,H,W,l_crop,r_crop,t_crop,b_crop);
- figure()
- imshow(img_crop,[])
- %}
- % hold on
- % plot(line1)
- % plot(avg_index)
- % hold off
- % figure()
- % imshow(img_crop,[])
- % hold off
- % figure()
- % imshow(img_line_surf)
- %Hair removal
- % img_line_surf_med = medfilt2(img_crop, [4 4]);
- % for i = 1:W_crop
- % img_line_surf(1:line1(i)-1,i) = 255;
- % end
- %
- % %%
- % img_line_surf = medfilt2(img_line_surf,[1 33]);
- % [line3V,line3I] = min(img_line_surf);
- %
- % for i = 1:W_crop
- % img_crop(1:line3I(i),i) = 0;
- % end
- %img_med = imgaussfilt(img_crop,gsigma);
- % img_med = padarray(img_filt',med,'replicate','both');
- % img_med = padarray(img_med',med,'replicate','both');
- % img_med = medfilt2(img_med,[med*2 med*2]);
- % img_med = img_med([med+1:H+med],[med+1:W+med]);
- % figure()
- % imshow(img_med)
- %03_PU\forehead' crop
- %09_NY\forehead' crop
- %08_MA\backhand' crop
- %08_MA\forehead crop
- %09_NY\forehead' hair
- %10_MR\forehead small hair
- %03_PU\backhand' small hair
- %03_PU\forearm' small hair
- %04_HG\backhand' small hair
- %04_HG\forearm' big hair
- %05_HR\forearm' big hair
- %05_HG\backhand' big hair
- %07_EJ\backhand' big hair
- % img_med = ideal_surf(img_gau,diff_idl,med,H,W);
- % img_filt1 = zeros(H+diff,W); % make 2d buffer for differential image
- % img_filt2 = zeros(H+diff,W);
- %
- % img_filt1(diff+1:diff+H,:) = img_filt; % put image data to buffer array
- % img_filt2(1:H,1:W) = img_filt;
- %
- % img_diff = img_filt1 - img_filt2; % calculate differential
- %
- % img_diff = img_diff(diff+1:diff+H,:); % cut margin part 2 pixel.
- % figure()
- % imshow(img_filt1,[])
- % figure()
- % imshow(img_filt2,[])
- % figure()
- % imshow(img_diff,[])
- % img_line2 = zeros(H,W);
- %
- % %diff = 10;
- % for i = 1:W
- % [local_max,local_index] = min(img_med(:,i));
- % img_line2(local_index,i) = 255; %+2 %-10 ubrat -diff
- % line2(i) = local_index-diffLine2; %brat -diff
- % end
- %
- % % plot(img_line_surf)
- %
- % figure()
- % imshow(img_crop)
- % hold on
- % plot(line3I)
- % plot(line2)
- % hold off
- % minRow = min(I);
- % for i = 1:W
- % diffShift(i) = I(i)-minRow;
- % lowLine1(i) = I(i)+100-diffShift(i);
- % end
- % im(1:j+1,i) = img_crop(ind_idl(i):ind_idl(i)+j,i);
- % im(topshift+1-c:(topshift+j-9),i) = img_crop(ind_idl(i)-c:(ind_idl(i)-10+j),i);
- %b = 500;
- % hik = img_crop(ind_idl(i):ind_idl(i)+j,i);
- % im(topshift+1-c:(topshift+j-9),i) = img_crop(ind_idl(i)-c:(ind_idl(i)-10+j),i);
- % c = 20;
- % img_flt = zeros(H,W);
- % for i = 1:W
- % j = H-ind_idl(i);
- % img_flt(mrg:mrg+j,i) = img_crp(ind_idl(i):ind_idl(i)+j,i);
- % end
- %473-ind
Advertisement
Add Comment
Please, Sign In to add comment