LSM_generate_waves2 generates square image with 2 waves I = LSM_generate_waves2(N0,b) N0 = size of image f_min = minimum intesity f_max = maximum intesity par = [f,sharp], f = frequency (sin(f*...)) I = image with waves/checkerboard
0001 % LSM_generate_waves2 generates square image with 2 waves 0002 % 0003 % I = LSM_generate_waves2(N0,b) 0004 % 0005 % N0 = size of image 0006 % f_min = minimum intesity 0007 % f_max = maximum intesity 0008 % par = [f,sharp], f = frequency (sin(f*...)) 0009 % 0010 % I = image with waves/checkerboard 0011 0012 function I=LSM_generate_waves2(N0,f_min,f_max,par) 0013 0014 % frequency 0015 f = par(1); 0016 % size of image 0017 N=2*N0+1; 0018 % generate wave in [-1,+1] 0019 for i=1:N 0020 for j=1:N 0021 I(i,j)=sin(f*pi*i/N)*sin(f*pi*j/N); 0022 end 0023 end 0024 if par(2) > 0 0025 % generate sharp edges 0026 I = sign(I); 0027 % smooth a bit 0028 % kernel = [1,4,6,4,1]'*[1,4,6,4,1]/256; 0029 s = par(2); 0030 N = 2*ceil(2*s)+1; 0031 alpha=(N-1)/2/s; 0032 ker = gausswin(N,alpha); 0033 ker = ker/sum(ker); 0034 kernel = ker*ker'; 0035 I = conv2(I,kernel,'same'); 0036 end 0037 % enforce intensity range 0038 I = floor((f_max-f_min) * (1+I)/2 + f_min); 0039 return