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);
|