Mark,
My comment about reconciling rendering intents was not pertinent to the thread, I had just thought thru the curve offset for absolute intent.
Doug,
I went back and did my "homework", read thru your thread on optimal profile patch sets. What's the best way to try out one of your patch sets in i1Profiler without buying/learning MATLAB?
Thanks,
Richard Southworth
Duh! I should have done this long ago. I have scripts that crank them out. I'll make a full range of sets from 91 patches to 14859 patches, which is an outer grid size of N=4 to N=20. I'll also add 35 more RGB neutrals which fills out the maximum AtoB1 spacing I1Profiler uses. I'll post them all as zipped RGB CGATs files which can be loaded directly by I1Profiler. Give me a few minutes.
Done. See attached zip file.
I've added the MATLAB script that generated the files here. This is the whole thing except for the function that makes the CGATs file from the RGB values.
Update:
Added the same patch set but this one is not randomized. Some may find it more useful. I prefer randomized patch sets.
% MakePackedCgats
for N=4:20
step=255/(N-1);
rgb0=CreateGrid(N,0); % Outer Grid
rgb1=CreateGrid(N,1); % Inner grid
rgbn=[(1:35)' (1:35)' (1:35)']*255/35;
rgb=[rgb0;step/2+rgb1; rgbn]; % combine Outer and inner grids to create packed grid
rng(1);
n=length(rgb);
rgbr=sortrows([rgb rand(n,1) (1:n)'],4);
MakeCgatsRGB(round(rgbr(:,1:3)), sprintf('Packed Target N=%d and N-1=%d with Neutrals.txt', N,N-1));
end
function [g] = CreateGrid(N, inner)
r=(255/(N-1))*(0:N-1)';
if inner
N=N-1;
end
g=[];
for i = 1:N
for ii = 1:N
for iii = 1:N
g=[g;[r(i) r(ii) r(iii)]];
end
end
end
end