| | function output=fun_transform_data_rgbfeatures(img_data,param) |
| | |
| | |
| | output.transformed_image=[]; |
| | output.mnsv=[]; |
| | output.maxsv=[]; |
| | output.ipvsz=[]; |
| |
|
| | image_size=param.image_size; |
| | img_x_dim=image_size(1); |
| | img_y_dim=image_size(1); |
| |
|
| | compute_decimal_place=param.compute_decimal_place; |
| | feature_RGB=param.feature_RGB; |
| | [nmb_of_colors,~]=size(feature_RGB); |
| |
|
| | [data_size,~]=size(img_data); |
| | reshaped_images=zeros(data_size,img_x_dim,img_y_dim,3); |
| | for m=1:data_size |
| | aa=double(img_data(m,:)); |
| | reshaped_images(m,:,:,:)=reshape(aa,img_x_dim,img_y_dim,3); |
| | end |
| |
|
| | if param.dwnsz_on==1 |
| | x_trim=param.x_trim; |
| | y_trim=param.y_trim; |
| | downsizing=param.downsizing; |
| | x_dwnsz_dim=fix(img_x_dim/downsizing); |
| | y_dwnsz_dim=fix(img_y_dim/downsizing); |
| |
|
| | ipvsz=(x_dwnsz_dim-2*x_trim)*(y_dwnsz_dim-2*y_trim); |
| | xsq=1:downsizing; |
| | ysq=1:downsizing; |
| | output.transformed_image=zeros(ipvsz,data_size,nmb_of_colors); |
| | output.mnsv=zeros(data_size,nmb_of_colors); |
| | output.maxsv=zeros(data_size,nmb_of_colors); |
| | output.ipvsz=ipvsz; |
| |
|
| | temp_img=zeros(ipvsz,3); |
| | for m=1:data_size |
| | img=squeeze(reshaped_images(m,:,:,:)); |
| | for color=1:3 |
| | img1=squeeze(img(:,:,color)); |
| | aa=zeros(ipvsz,1); |
| | for ii=(1+x_trim):(x_dwnsz_dim-x_trim) |
| | for jj=(1+y_trim):(y_dwnsz_dim-y_trim) |
| | aa((jj-y_trim)+((ii-x_trim)-1)*(y_dwnsz_dim-2*y_trim),1)=mean(img1(xsq+2*(ii-1),ysq+2*(jj-1)),'all'); |
| | end |
| | end |
| | temp_img(:,color)=aa; |
| | end |
| | for color=1:nmb_of_colors |
| | c1=feature_RGB(color,1); |
| | c2=feature_RGB(color,2); |
| | c3=feature_RGB(color,3); |
| | aa=c1*temp_img(:,1)+c2*temp_img(:,2)+c3*temp_img(:,3); |
| | mnsv=mean(aa); |
| | aa=aa-mnsv; |
| | maxsv=max(abs(aa)); |
| | output.transformed_image(:,m,color)=round(aa/maxsv*10^compute_decimal_place)*10^(-compute_decimal_place); |
| | output.mnsv(m,color)=mnsv; |
| | output.maxsv(m,color)=maxsv; |
| | end |
| | end |
| | else |
| | temp_img=zeros(img_x_dim*img_y_dim,3); |
| | ipvsz=img_x_dim*img_y_dim; |
| | output.ipvsz=ipvsz; |
| | for m=1:data_size |
| | img=squeeze(reshaped_images(m,:,:,:)); |
| | for color=1:3 |
| | aa=img(:,:,color); |
| | aa=aa(:); |
| | temp_img(:,color)=aa; |
| | end |
| | for color=1:nmb_of_colors |
| | c1=feature_RGB(color,1); |
| | c2=feature_RGB(color,2); |
| | c3=feature_RGB(color,3); |
| | aa=c1*temp_img(:,1)+c2*temp_img(:,2)+c3*temp_img(:,3); |
| | mnsv=mean(aa); |
| | aa=aa-mnsv; |
| | maxsv=max(abs(aa)); |
| | output.transformed_image(:,m,color)=round(aa/maxsv*10^compute_decimal_place)*10^(-compute_decimal_place); |
| | output.mnsv(m,color)=mnsv; |
| | output.maxsv(m,color)=maxsv; |
| | end |
| | end |
| | end |
| | if data_size==1 |
| | output.transformed_image=squeeze(output.transformed_image); |
| | end |
| | end |