matlab将深度图转为点云显示的代码:
intrinsic=[fx,0,cx
0,fy,cy
0,0,1];
fdx=intrinsic(1,1);
fdy=intrinsic(2,2);
u0=intrinsic(1,3);
v0=intrinsic(2,3);
[h,w] = size(imdepth);
u=repmat(1:w,[h,1]);
v=repmat(1:h,[w,1])';
Z=imdepth;
X=(Z(:).*(u(:)-u0))/fdx;
Y=(Z(:).*(v(:)-v0))/fdy;
figure,pcshow([X(:),Y(:),Z(:)]);
深度图:
点云图: