0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 function [I_true,N1,M1]=LSM_generate_true_image(img_filename,row,col,Ni)
0015
0016
0017 I_ori = imread(['example_data/Images/',img_filename]);
0018 [N1,M1,channels] = size(I_ori);
0019
0020 N = 2*floor(min(N1,M1)/2)-1;
0021
0022 if max([row,col]) < N-Ni && min([row,col]) > Ni
0023
0024 I_orig=I_ori(1:N,1:N);
0025
0026 if channels == 3
0027 Ig = double(rgb2gray(I_orig));
0028 else
0029 Ig = I_orig;
0030 end
0031 I_ori(row-Ni:row+Ni,col-Ni)=255*ones(1,2*Ni+1);
0032 I_ori(row-Ni:row+Ni,col+Ni)=255*ones(1,2*Ni+1);
0033 I_ori(row-Ni,col-Ni:col+Ni)=255*ones(2*Ni+1,1);
0034 I_ori(row+Ni,col-Ni:col+Ni)=255*ones(2*Ni+1,1);
0035 figure
0036 imshow(I_ori);
0037
0038
0039
0040 Box = [0 0 1 4 6 4 1 0 0]'/16;
0041 ad = (length(Box)-1)/2;
0042 I_g_r = conv2(single(Ig),Box);
0043 I_g_rc = conv2(I_g_r,Box');
0044
0045
0046 I_true = uint8(round(I_g_rc(row-Ni+ad:row+Ni+ad,col-Ni+ad:col+Ni+ad)));
0047
0048 else
0049 display(['wrong window selection']);
0050 stop
0051 end
0052
0053
0054
0055 return