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_Skin2017\AreaRoughness\General');
- data_pth = 'C:\Users\iptea\Documents\MATLAB\skin_data_171017';
- d = dir;
- d = d(~ismember({d.name},{'.','..'}));
- %%
- sbj = {'1','2','3','4','5'};
- part = {'y_cheek','o_cheek','y_eye','o_eye','y_forearm','o_forearm'};
- %%
- sht_tbl = 'side_refparam.xlsx';
- T = readtable(sht_tbl,'ReadRowNames',false);
- l_crop_list_o = T{1:15,6};
- gau1_list_o = T{1:15,7};
- med_list_o = T{1:15,8};
- gau2_list_o = T{1:15,9};
- l_crop_list_y = T{1:15,15};
- gau1_list_y = T{1:15,16};
- med_list_y = T{1:15,17};
- gau2_list_y = T{1:15,18};
- med_arr = zeros(5,6);
- gsigma2_arr = zeros(5,6);
- l_crop_arr = zeros(5,6);
- gsigma1_arr = zeros(5,6);
- %%
- l_crop_arr(:,1) = l_crop_list_y(1:5,1);
- l_crop_arr(:,2) = l_crop_list_o(1:5,1);
- l_crop_arr(:,3) = l_crop_list_y(6:10,1);
- l_crop_arr(:,4) = l_crop_list_o(6:10,1);
- l_crop_arr(:,5) = l_crop_list_y(11:15,1);
- l_crop_arr(:,6) = l_crop_list_o(11:15,1);
- med_arr(:,1) = med_list_y(1:5,1);
- med_arr(:,2) = med_list_o(1:5,1);
- med_arr(:,3) = med_list_y(6:10,1);
- med_arr(:,4) = med_list_o(6:10,1);
- med_arr(:,5) = med_list_y(11:15,1);
- med_arr(:,6) = med_list_o(11:15,1);
- gsigma1_arr(:,1) = gau1_list_y(1:5,1);
- gsigma1_arr(:,2) = gau1_list_o(1:5,1);
- gsigma1_arr(:,3) = gau1_list_y(6:10,1);
- gsigma1_arr(:,4) = gau1_list_o(6:10,1);
- gsigma1_arr(:,5) = gau1_list_y(11:15,1);
- gsigma1_arr(:,6) = gau1_list_o(11:15,1);
- gsigma2_arr(:,1) = gau2_list_y(1:5,1);
- gsigma2_arr(:,2) = gau2_list_o(1:5,1);
- gsigma2_arr(:,3) = gau2_list_y(6:10,1);
- gsigma2_arr(:,4) = gau2_list_o(6:10,1);
- gsigma2_arr(:,5) = gau2_list_y(11:15,1);
- gsigma2_arr(:,6) = gau2_list_o(11:15,1);
- %%
- sht_name = 'rgh_side.xlsx';
- ttl = {'part','sbj','avg_rgh','rms_rgh','max_rgh'};
- ttl_rng1 = 'B1:F1';
- xlswrite(sht_name,ttl,ttl_rng1);
- %%
- ttl_rng2 = 'H1:L1';
- xlswrite(sht_name,ttl,ttl_rng2);
- %%
- max_no = 5;
- avg_rgh = zeros(1,max_no);
- rms_rgh = zeros(1,max_no);
- max_rgh = zeros(1,max_no);
- %%
- counter = 0;
- incr1 = 1;
- incr2 = 2;
- for part_no = 1:length(part)
- for sbj_no = 1:length(sbj)
- fld_pth = strcat(data_pth,'\',sbj{sbj_no},'\',part{part_no},'\');
- disp(fld_pth);
- t_crop = 20;
- r_crop = 55;
- b_crop = 500;
- l_crop = l_crop_arr(sbj_no,part_no);
- img_name = strcat('Image',num2str(2,'%04d'),'.jpg');
- img = imread(strcat(fld_pth,img_name));
- [H,W] = size(img);
- img3d = zeros(H,W,500);
- [img_crp,H,W] = crop(img,H,W,l_crop,r_crop,t_crop,b_crop);
- for img_no = 1:500
- img_name = strcat('Image',num2str(img_no-1,'%04d'),'.jpg');
- img = imread(strcat(fld_pth,img_name));
- %[H,W] = size(img);
- %[img_crp,H,W] = crop(img,H,W,l_crop,r_crop,t_crop,b_crop);
- %img3d = zeros(H,W,img_no);
- img3d(:,:,img_no) = img;
- if mod(img_no,100) == 0
- fprintf('*');
- fprintf('%i\n', img_no);
- end
- end
- [H,W,I] = size(img3d);
- for img_no = 1:W
- fprintf('.');
- %if mod(img_no,1) == 0
- % fprintf('%i\n',img_no);
- %end
- avgSide = img3d(:,img_no,:);
- % avgSide = avgSide([20:H-400],:); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- avgSide2 = squeeze(avgSide);
- img = avgSide2;
- %read_file_name = strcat('Image',num2str(step-1,'%04d'),'.jpg');
- [H,W] = size(img);
- gsigma1 = gsigma1_arr(sbj_no,part_no);
- img_gau = imgaussfilt(img,gsigma1);
- med = med_arr(sbj_no,part_no); %med_arr(sbj_no,part_no); %60
- diff_idl = 2;
- img_med = medfilt2(img_gau,[med*2 med*2],'symmetric');
- img_med = filt_diff(img_med,H,W,diff_idl);
- [img_idl,ind_idl,~] = find_srf(img_med,H,W);
- % figure()
- % imshow(img,[])
- % hold on
- % h2 = plot(ind_idl);
- % set(h2,'LineWidth',2)
- mrg = 60;
- [img_flt,H,W] = flatten(img,H,W,ind_idl,mrg);
- gsigma2 = gsigma2_arr(sbj_no,part_no);
- img_gau = imgaussfilt(img_flt,gsigma2);
- diff_rl = 2;
- img_diff = filt_diff(img_gau,H,W,diff_rl);
- [img_rl,ind_rl,avg_rl] = find_srf(img_diff,H,W); %img_rl
- % figure()
- % imshow(img_flt,[]);
- % hold on
- % h4 = plot(ind_rl);
- % set(h4,'LineWidth',2)
- % figure()
- % plot(ind_rl);
- % hold on
- % plot(avg_rl);
- [avg_rgh(img_no),rms_rgh(img_no),max_rgh(img_no)] = rgh(avg_rl,ind_rl);
- end
- mean_avg_rgh = mean(avg_rgh);
- mean_rms_rgh = mean(rms_rgh);
- mean_max_rgh = mean(max_rgh);
- A = [part(1,part_no),sbj(1,sbj_no),num2str(mean_avg_rgh),num2str(mean_rms_rgh),...
- num2str(mean_max_rgh)];
- if mod(part_no,2) == 1
- rw_bef = part_no - incr1;
- vrbl_rng = strcat('B',num2str(rw_bef*5+sbj_no+1),':','F',num2str(rw_bef*5+sbj_no+1));
- else
- rw_aft = part_no - incr2;
- vrbl_rng = strcat('H',num2str(rw_aft*5+sbj_no+1),':','L',num2str(rw_aft*5+sbj_no+1));
- end
- xlswrite(sht_name,A,vrbl_rng);
- counter = counter + 1;
- fprintf('\n%i out of %i\n', counter, length(part)*length(sbj));
- end
- if mod(part_no,2) == 1
- incr1 = incr1 + 1;
- else
- incr2 = incr2 + 1;
- end
- end
- fprintf('Process finished.\n');
- % for img_no = 1:W
- % fprintf('.');
- % if mod(img_no,100) == 0
- % fprintf('%i\n',img_no);
- % end
- %
- % avgSide = img3d(:,img_no,:);
- % % avgSide = avgSide([20:H-400],:); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % avgSide2 = squeeze(avgSide);
- % img = avgSide2;
- %
- % %read_file_name = strcat('Image',num2str(step-1,'%04d'),'.jpg');
- %
- % [H,W] = size(img);
- %
- % end
- % l_crop = 10;
- % t_crop = 20;
- % r_crop = 1;
- % b_crop = 1;
- % diffLine1 = 3;
- %
- % [img_crop,H_crop,W_crop] = crop(img,H,W,l_crop,r_crop,t_crop,b_crop);
- %
- % up = H_crop-2;
- % down = 222;
- % gsigma = 6;
- %
- % img_filt = imgaussfilt(img_crop,gsigma);
- % % img_line_surf_med = medfilt2(img_crop, [4 4]);
- % %%
- %
- % img_diff = filt_diff(img_filt,H_crop,W_crop,diffLine1);
- % [img_line_surf,ind_line_surf,avg_index,ref_line,line1] = line_surf3(img_diff,H_crop,W_crop,diffLine1,up,down);
- %
- % 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
- %
- % [H,W] = size(img_crop);
- %
- % diffLine2 = 5;
- % med = 60;
- % %img_med = imgaussfilt(img_crop,gsigma);
- % img_med = padarray(img_crop',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]);
- % img_filt1 = zeros(H+diffLine2,W);
- % img_filt2 = zeros(H+diffLine2,W);
- %
- % img_filt1([diffLine2+1:H+diffLine2],:) = img_med;
- % img_filt2([1:H],[1:W]) = img_med;
- %
- % %%
- % img_med = img_filt1 - img_filt2;
- % img_med = img_med([diffLine2+1:H+diffLine2],:);
- %%
- % img_line2 = zeros(H,W);
- %
- % for i = 1:W
- % [local_max,local_index(i)] = min(img_med(:,i));
- % img_line2(local_index(i),i) = 255; %+2 %-10 ubrat -diff
- % % line2(i) = local_index-diffLine2; %brat -diff
- % line2(i) = local_index(i); %brat -diff
- % end
- %
- % I = line2;
- % minRow = min(I);
- %
- % for i = 1:W
- % diffShift(i) = I(i)-minRow;
- % end
- %
- %
- % im = zeros(H,W);
- % topshift = 50;
- % for i=1:size(im,2)
- % j=473-I(i);
- % im(topshift+1:(topshift+j+1),i)=img_crop(I(i):(I(i)+j),i);
- % % im(topshift+1:(topshift+j-9),i)=img_crop(I(i):(I(i)-10+j),i);
- % %im(topshift+1-c:(topshift+j-9),i)=img_crop(I(i)-c:(I(i)-10+j),i);
- % end
- % t_crop = 1;
- % l_crop = 1;
- % r_crop = 1;
- % b_crop = 550;
- % [H,W] = size(im);
- % [img_crop,H_crop,W_crop] = crop(im,H,W,l_crop,r_crop,t_crop,b_crop);
- %
- % [H,W] = size(img_crop);
- % up = H-2;
- %
- % img_filt = imgaussfilt(img_crop,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(img_crop,[])
- % hold on
- % plot(line1)
- % plot(avg_index)
- % hold off
- %
- % % r_crop = 1;
- % [peak_height,valley_depth] = peak_valley(line1,avg_index,W);
- % [avg_rough(step),rms_rough(step),max_rough(step),total_rough(step)] = roughness(peak_height,valley_depth);
- %
- %
- % img_crop = img_crop-min(img_crop(:)); % shift data such that the smallest element of A is 0
- % img_crop = img_crop/max(img_crop(:)); % normalize the shifted data to 1
- %
- %
- % disp(strcat(OpenPath,read_file_name));
- %
- % write_file_name = read_file_name;
- % imwrite(img_crop,fullfile(SavePath,write_file_name),'BitDepth',8);
- % mean_avg_rough = mean(avg_rough);
- % mean_rms_rough = mean(rms_rough);
- % mean_max_rough = mean(max_rough);
- % mean_total_rough = mean(total_rough);
- %
- % A = [nm2(1,nm2L),nm1(1,nm1L),num2str(mean_avg_rough),num2str(mean_rms_rough),...
- % num2str(mean_max_rough),num2str(mean_total_rough)];
- %
- % xlRangeVariables = strcat('B',num2str((nm2L-1)*10+nm1L+1),':','G',num2str((nm2L-1)*10+nm1L+1));
- % xlswrite(filename,A,xlRangeVariables);
Advertisement
Add Comment
Please, Sign In to add comment