该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
numCamera = 20;
volumeX = 64;
volumeY = 128;
volumeZ = 64;
dX = volumeX/2;
dY = volumeY/2;
dZ = volumeZ/2;
visualHullSamplingRate = 0.1;
silhouetteThreshold = 200;
% load silhouette images and projection matrices
for i=1:numCamera
PMatrix{i} = load(['smallwoman\Calib_' int2str(i) '.txt']);
SImage{i} = rgb2gray(imread(['smallwoman\dancer_' int2str(i) '.bmp']));
end;
imshow(SImage{1,1});
% visual hull computation
% you should provide the code here
thresh = 110;
scale = 1/16;
volume = ones(volumeX,volumeY,volumeZ);
for i = 1:numCamera
img = SImage{i} >= thresh;
P = PMatrix{i};
x1 = P(1,1)*scale*((1:volumeX)-dX);
y1 = P(2,1)*scale*((1:volumeX)-dX);
z1 = P(3,1)*scale*((1:volumeX)-dX);
x2 = P(1,2)*scale*((1:volumeY)-dY);
y2 = P(2,2)*scale*((1:volumeY)-dY);
z2 = P(3,2)*scale*((1:volumeY)-dY);
for Z = 1:volumeZ
p = P(:,3:4)*[scale*(Z-dZ) 1]';
z = z1'*ones(1,volumeY) + ones(volumeX,1)*z2 + p(3);
x = (x1'*ones(1,volumeY) + ones(volumeX,1)*x2 + p(1)) ./ z;
y = (y1'*ones(1,volumeY) + ones(volumeX,1)*y2 + p(2)) ./ z;
volume(:,:,Z) = volume(:,:,Z) & interp2(img, x, y,'*nearest', 1);
end
end
里面的 x1 = P(1,1)*scale*((1:volumeX)-dX);
p = P(:,3:4)*[scale*(Z-dZ) 1]';
z = z1'*ones(1,volumeY) + ones(volumeX,1)*z2 + p(3);
的意思,急急急求!!