function [percent, rgb] = vignette(ap,ya,yc) N=201; [x,y] = meshgrid(linspace(-1,1,N)); xsq = x.*x; rsq = xsq+y.*y; base = rsq<=1.0; base_area = sum(sum(base)); radius = zeros(size(ap)); offset = radius; idx = find(ya>0); map = base; radius(idx) = ap(idx)./abs(ya(idx)); offset(idx) = yc(idx)./abs(ya(idx)); for i=1:length(idx) k = idx(i); yd = y - offset(k); rsq = radius(k)*radius(k); lens_map = (xsq+yd.*yd)<rsq; map = and(map,lens_map); end vign_area = sum(sum(map)); percent = 100.0*(1-vign_area/base_area); rgb = double(cat(3,base,base,base&~map));