Levi-Heath's picture
Upload 16 files
62615d9 verified
function output=fun_transform_data_rgbfeatures(img_data,param)
%
%img_data=data_load.data;
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