annotate general/numerical/matrix/fuzzeye.m @ 61:eff6bddf82e3 tip

Finally implemented perceptual brightness thing.
author samer
date Sun, 11 Oct 2015 10:20:42 +0100
parents db7f4afd27c5
children
rev   line source
samer@4 1 function I=fuzzeye(n,m,sigma)
samer@4 2 % fuzzeye Fuzzy nonsquare unit matrix
samer@4 3 %
samer@4 4 % I=fuzzeye(n,m)
samer@4 5 % I=fuzzeye([n m])
samer@4 6 % I=fuzzeye(n,m,sigma)
samer@4 7 % I=fuzzeye([n m],sigma)
samer@4 8 %
samer@4 9 % return n by m 'fuzzy' unit matrix
samer@4 10 % spread factor sigma is roughly in elements
samer@4 11 % default sigma is m/n or n/m (the larger)
samer@4 12
samer@4 13 if length(n)>1,
samer@4 14 if nargin<2,
samer@4 15 sigma=2*max([n(2)/n(1) n(1)/n(2)]);
samer@4 16 else
samer@4 17 sigma=m;
samer@4 18 end
samer@4 19 m=n(2);
samer@4 20 n=n(1);
samer@4 21 else
samer@4 22 if nargin<3, sigma=max([m/n n/m]); end
samer@4 23 end
samer@4 24
samer@4 25 sigma=sigma/max([n m]);
samer@4 26 [X,Y]=meshgrid(0:m-1,0:n-1);
samer@4 27 X = X/(m-1);
samer@4 28 Y = flipud(Y)/(n-1);
samer@4 29 Z = ((X-Y).^2)/(sigma^2);
samer@4 30 I = exp(-Z/2);