Skip to content
Snippets Groups Projects
Commit 2c7ae1bc authored by ac_fx's avatar ac_fx
Browse files

dist matrix parallel / drawSpatial synth

parent 330badac
Branches
No related tags found
No related merge requests found
% get a list of i,j pairs from d suitable for a parpool of size nPool
function cmdList = dParallelCommandList(d,nPool)
cmdList = [];
A = ones(size(d));
uu = triu(A);
[r,c] = find(uu');
W = ceil(length(r)/nPool);
H = nPool;
cmdList = zeros(H,W,2);
if length(r) < H*W
r(H*W) = 0;
c(H*W) = 0;
end
r = reshape(r,W,H)';
c = reshape(c,W,H)';
cmdList(:,:,1) = r;
cmdList(:,:,2) = c;
......@@ -48,10 +48,19 @@ enc=calllib('libflif','flif_create_encoder');
% each X{i} is an image
clear pim; % matlab pointer to X{i}
clear fim; % flif pointer to X{i}
if size(X{1},4) == 3
encoding = 'flif_import_image_RGB';
strideFactor = 3;
else
encoding = 'flif_import_image_GRAY';
strideFactor = 1;
end
for i=1:length(X)
pim(i)=libpointer('voidPtr',X{i});
fim(i)=calllib('libflif','flif_import_image_GRAY',size(X{i},1),...
size(X{i},2),pim(i),size(X{i},1));
imX1 = squeeze(X{i});
pim(i)=libpointer('voidPtr',imX1);
fim(i)=calllib('libflif',encoding, size(imX1,1),...
size(imX1,2),pim(i),strideFactor*size(imX1,1));
calllib('libflif','flif_encoder_add_image_move',enc,fim(i));
end
% for output
......
spacing =1;
covm=[eye(2)];
N=1e5
X = getRandomSpatialData(spacing,covm,N);
targetRect = 5; % +/- in all dim
RES = 1024;
imSample = zeros(RES,RES,3);
K=3; % 3 classes
ccc = ['r','g','b'];
for cx = 1:K
idx0 = (cx-1)*N + 1;
idx1 = idx0 + N - 1;
xSample = X(idx0:idx1,:);
rcSample = round(xSample/targetRect * RES/2) + RES/2;
idx = find(rcSample(:,1)>size(imSample,1) | rcSample(:,2)>size(imSample,2));
rcSample(idx) = nan;
idx = find(rcSample(:,1)<1 | rcSample(:,2)<1);
rcSample(idx) = nan;
[r,~] = find(isnan(rcSample));
r = unique(r);
rcSample(r,:) = [];
imChannel = zeros(RES,RES);
idxChannel = sub2ind(size(imChannel),rcSample(:,2),rcSample(:,1));
imChannel(idxChannel) = 1;
imSample(:,:,cx) = imChannel;
end
clf;imagesc(imSample);axis image
spacing =1;
covm=[eye(2)];
N=1e4
X = getRandomSpatialData(spacing,covm,N);
targetRect = 5; % +/- in all dim
K=3; % 3 classes
ccc = ['r','g','b'];
step = 0.5;
[rMesh,cMesh] = meshgrid(-targetRect:step:targetRect,-targetRect:step:targetRect);
clf,hold on;
for cx = 1:K
idx0 = (cx-1)*N + 1;
idx1 = idx0 + N - 1;
xSample = X(idx0:idx1,:);
cSample = zeros(size(cMesh));
for i=1:size(xSample,1)
xx = xSample(i,:);
dx = abs([xx(1)-rMesh]);
dy = abs([xx(2)-cMesh]);
[~,idx] = min(dx(1,:));
[~,idy] = min(dy(:,1));
cSample(idx,idy) = cSample(idx,idy) + 1;
end
ccc = zeros([size(cSample),3]);
ccc(:,:,cx) = cSample./ max(cSample(:));
surf(cMesh,rMesh,cSample,ccc,'FaceAlpha',0.5)
end
zlim([5,500]);
xlabel('X')
ylabel('Y')
zlabel('count(X,Y)')
set(gcf,'Color','w')
set(gca,'ytick',0)
set(gca,'xtick',[0,1,2])
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment