


Pattern-color separable spatial filters from Poirson & Wandell (1993)
[lum, rg, by, positions] = poirsonSpatioChromatic([sampPerDeg =241],[dimension = 2])
These filters are fitted spatial response, formed by taking the weighted
sum of two or three Gaussians.
Parameters
sampPerDeg: filter sampling resolution (default=241 samps/deg)
dimension: filter for 1D or 2D format (default = 2)
See the Spatial-CIELAB implementation for other related ideas.
Examples:
[lum, rg, by, x] = poirsonSpatioChromatic([],1);
plot(x,lum,'k-',x,rg,'r--',x,by,'b:'); xlabel('Position (deg)')
grid on
[lum, rg, by, x] = poirsonSpatioChromatic(120,2);
mesh(x,x,lum); xlabel('Position (deg)'); ylabel('Position (deg)')
mesh(x,x,by);
To compute the spatial MTF of these filters compute
clf
[lum, rg, by, x] = poirsonSpatioChromatic(241,1);
lumMTF = abs(fft(lum)); plot(lumMTF)
minFreq = 1/(max(x) - min(x));
freq = [1:length(x)]*minFreq;
l = (freq < 60);
plot(freq(l),lumMTF(l)); grid on
For 2D plots some fftshifting is required
[lum, rg, by, x] = poirsonSpatioChromatic(241,2);
rgMTF = ifftshift(abs(fft2(fftshift(rg)))); mesh(rgMTF)
minFreq = 1/(max(x) - min(x));
freq = [1:length(x)]*minFreq; freq = freq - (max(freq)/2);
[X,Y] = meshgrid(freq,freq);
clf; mesh(X,Y,rgMTF);
set(gca,'xlim',[-40 40],'ylim',[-40 40]);
Copyright ImagEval Consultants, LLC, 2005.