三维重建指定的区域

 1三维地形图重建代码imgDisp=imread('imgDisp.jpg');
 2三维地形图重建代码if isrgb(imgDisp)
 3三维地形图重建代码    imgDisp=rgb2gray(imgDisp);
 4三维地形图重建代码end
 5三维地形图重建代码
 6三维地形图重建代码imshow(uint8(4*double(imgDisp)))
 7三维地形图重建代码disp('选择一个需要三维重建的区域,先左上角,再右下角')
 8三维地形图重建代码rect=ginput(2)
 9三维地形图重建代码
10三维地形图重建代码%3d重建
11三维地形图重建代码base=0.27;
12三维地形图重建代码f=740;
13三维地形图重建代码[H,W]=size(imgDisp);
14三维地形图重建代码u0=W/2
15三维地形图重建代码v0=H/2
16三维地形图重建代码rectDisp=imgDisp(rect(1,2):rect(2,2),rect(1,1):rect(2,1));
17三维地形图重建代码[rectH,rectW]=size(rectDisp);
18三维地形图重建代码imshow(rectDisp)
19三维地形图重建代码rectDisp=double(rectDisp);
20三维地形图重建代码Z=zeros(rectH,rectW);
21三维地形图重建代码if 0
22三维地形图重建代码    [row,col]=find(rectDisp==0);
23三维地形图重建代码    Z=f*base./rectDisp;
24三维地形图重建代码    Z(row,col)=0;
25三维地形图重建代码    Z2=Z;
26三维地形图重建代码    [u,v]=meshgrid(rect(1,1):rect(2,1),rect(1,2):rect(2,2));
27三维地形图重建代码    X2=Z.*(u-u0)/f;
28三维地形图重建代码    Y2=Z.*(v-v0)/f;
29三维地形图重建代码end
30三维地形图重建代码X=zeros(rectH,rectW);
31三维地形图重建代码Y=zeros(rectH,rectW);
32三维地形图重建代码for x=1:rectW
33三维地形图重建代码    for y=1:rectH
34三维地形图重建代码        if rectDisp(y,x)==0
35三维地形图重建代码            Z(y,x)=0;
36三维地形图重建代码        else
37三维地形图重建代码            Z(y,x)=f*base/rectDisp(y,x);
38三维地形图重建代码            X(y,x)=Z(y,x)*(x+rect(1,1)-1-u0)/f;
39三维地形图重建代码            Y(y,x)=Z(y,x)*(y+rect(1,2)-1-v0)/f;            
40三维地形图重建代码        end
41三维地形图重建代码    end
42三维地形图重建代码end
43三维地形图重建代码% Z_Z2=norm(Z-Z2)
44三维地形图重建代码% X_X2=norm(X-X2)
45三维地形图重建代码% Y_Y2=norm(Y-Y2)
46三维地形图重建代码%for y=2:(H-1)
47三维地形图重建代码    
48三维地形图重建代码Y=medfilt2(Y);Y=medfilt2(Y);
49三维地形图重建代码X=medfilt2(X);
50三维地形图重建代码Z=medfilt2(Z);
51三维地形图重建代码Z=Z/2;
52三维地形图重建代码%surf(Y)
53三维地形图重建代码
54三维地形图重建代码plot3(X(:),Z(:),-Y(:),'.')
55三维地形图重建代码xlabel('x/(m)')
56三维地形图重建代码ylabel('y/(m)')
57三维地形图重建代码zlabel('z/(m)')
58三维地形图重建代码axis equal
59三维地形图重建代码figure
60三维地形图重建代码
61三维地形图重建代码surf(X(2:(rectH-1),2:(rectW-1)),Z(2:(rectH-1),2:(rectW-1)),-Y(2:(rectH-1),2:(rectW-1)))
62三维地形图重建代码xlabel('x/(m)')
63三维地形图重建代码ylabel('y/(m)')
64三维地形图重建代码zlabel('z/(m)')
65三维地形图重建代码
66三维地形图重建代码axis equal
67三维地形图重建代码%XYZ_C=[X(:) Y(:) Z(:)];


三维重建全图

 1三维地形图重建代码clc
 2三维地形图重建代码clear
 3三维地形图重建代码close all
 4三维地形图重建代码%读入三位数据,保存到X,Y,Z
 5三维地形图重建代码XYZ=load('3dpts.txt');  
 6三维地形图重建代码X=XYZ(:,1+3);
 7三维地形图重建代码Y=XYZ(:,3+3);
 8三维地形图重建代码Z=-XYZ(:,2+3);
 9三维地形图重建代码fprintf('X %d %d\n',max(X),min(X))
10三维地形图重建代码fprintf('Y %d %d\n',max(Y),min(Y))
11三维地形图重建代码fprintf('Z %d %d\n',max(Z),min(Z))
12三维地形图重建代码
13三维地形图重建代码%设置显示的范围
14三维地形图重建代码M=.5;
15三维地形图重建代码XMIN=max(min(X)*M,-5);XMAX=min(max(X)*M,5);
16三维地形图重建代码YMIN=max(min(Y)/M,1);YMAX=min(max(Y)*M,10);
17三维地形图重建代码ZMIN=max(min(Z)*M,-1);ZMAX=min(max(Z)*M,10);
18三维地形图重建代码if 1
19三维地形图重建代码    XMIN=max(min(X)*M,-5);XMAX=min(max(X)*M,5);
20三维地形图重建代码    YMIN=max(min(Y)*M,1);YMAX=min(max(Y)*M,10);
21三维地形图重建代码    ZMIN=max(min(Z)*M,-10);ZMAX=min(max(Z)*M,100);
22三维地形图重建代码end
23三维地形图重建代码
24三维地形图重建代码%设置栅格大小GridSize,栅格数目NX,NY
25三维地形图重建代码N=size(X,1);
26三维地形图重建代码%GridSize=.1;
27三维地形图重建代码GridSize=(XMAX-XMIN)/50
28三维地形图重建代码NX=floor((XMAX-XMIN)/GridSize)
29三维地形图重建代码NY=floor((YMAX-YMIN)/GridSize)
30三维地形图重建代码if NX>1000 | NY>1000
31三维地形图重建代码    error
32三维地形图重建代码end
33三维地形图重建代码
34三维地形图重建代码%构造栅格
35三维地形图重建代码[GRIDX,GRIDY]=meshgrid((1:NX)*GridSize,(1:NY)*GridSize);
36三维地形图重建代码GRID=zeros(NY,NX);
37三维地形图重建代码CNT=ones(NY,NX);
38三维地形图重建代码XYZ=[floor((X-XMIN)/GridSize+.5) floor((Y-YMIN)/GridSize+.5) (Z+0.5)];
39三维地形图重建代码NUMOK=0;
40三维地形图重建代码for i=1:N
41三维地形图重建代码    if(rem(i,100)==0) fprintf('%d ',i);end
42三维地形图重建代码        ix=XYZ(i,1);
43三维地形图重建代码        iy=XYZ(i,2);
44三维地形图重建代码        iz=XYZ(i,3);
45三维地形图重建代码        if ix>0 & ix<=NX & iy>0 & iy<=NY & iz>ZMIN & iz<ZMAX
46三维地形图重建代码            GRID(iy,ix)=GRID(iy,ix)+iz;
47三维地形图重建代码            CNT(iy,ix)=CNT(iy,ix)+1;            
48三维地形图重建代码            NUMOK=NUMOK+1;
49三维地形图重建代码        end
50三维地形图重建代码end
51三维地形图重建代码GRID=GRID./CNT;
52三维地形图重建代码GRID=medfilt2(GRID);
53三维地形图重建代码%GRID=smooth(GRID);GRID=reshape(GRID,NY,NX);
54三维地形图重建代码surf(GRIDX,GRIDY,GRID); colorbar
55三维地形图重建代码%figure
56三维地形图重建代码%[c,h] = contour(GRIDX,GRIDY,GRID); clabel(c,h), colorbar
57三维地形图重建代码fprintf('\n%d  / %f valid pts\n',NUMOK,N)

相关文章:

  • 2021-09-26
  • 2021-09-08
  • 2021-12-12
  • 2021-09-17
  • 2021-09-20
  • 2021-11-30
  • 2021-12-22
  • 2021-06-10
猜你喜欢
  • 2021-12-22
  • 2021-05-13
  • 2022-12-23
  • 2021-10-29
  • 2021-10-08
  • 2022-02-15
相关资源
相似解决方案