基於點源的三維物體計算全息顯示

2021-10-05 20:30:03 字數 3448 閱讀 5535

13d物體的三維資料獲取

1.1 3dsmax三維資料獲取

開啟3dsmax,新建乙個3d模型,如茶壺,在指令碼檔案中貼上如下**,可輸出相應模型的3d資料

exfile=openfile"c:\exportdata1.txt"mode:

"w"for obj in geometry

do(format "物件名稱(\"%\");物件的頂點總數:%\n" obj.name obj.mesh.numverts to:exfile

for i in 1 to obj.mesh.numverts

do( vertpos=getvert obj.mesh i

format" % % %\n" vertpos.x vertpos.y vertpos.z to:exfile

))

1.2 二維影象點源取樣全息顯示

一張影象一般由m×n

m×nm×

n個資料構成,只需將二維影象的平面對應相應的座標系即可,假設一張的尺寸為lx×

ly

lx×ly

lx×l

y,對其離散為相應的座標系,此時,在相應的座標系採用的數目需等於m×n

m×nm×

n,以的二維取樣為例,二維影象上的點以球面波的方式進行傳播,進行說明。

a=

imread

('e:\tp\dh.bmp');

%輸入b=

double(a

(:,:

,1))

;%取一層的值,如r、g、b之一

[r,c]

=size

(b);

%影象資料大小,相當於m,n

b=b.

*exp

(j*rand

(size

(r,c))*

2*pi)

;lambda=

0.000532

;%綠光波長,單位mmk=2

*pi/lambda;l=8

;%空降光調製器尺寸,單位mm

d=1200

;%衍射距離

本例中設物平面和衍射面尺寸大小一致

x0=linspace

(-l/

2,l/

2,r)

;y0=

linspace

(-l/

2,l/

2,c)

;[x0,y0]

=meshgrid

(y0,x0)

;%這樣就生成了物平面的座標係空,

xx=linspace

(-l/

2,l/

2,r)

;yy=

linspace

(-l/

2,l/

2,c)

;[xx,yy]

=meshgrid

(yy,xx)

;uf=0;

%以下迴圈利用菲涅爾衍射積分的卷積表示式,去掉前面的係數(

exp(j*k*d)

/j*lambda*d),

%對取樣影象的每乙個點源進行菲涅爾衍射計算,並累加得到復振幅。

for i=1:r

for n=1:c

u=b(i,n).*

exp(j*k*

((xx-

x0(i,n)).

^2+(yy-

y0(i,n)).

^2)/

2/d)

;%球面波表示式,即求取物平面上每一點在衍射面上的復振幅分布,將物平面上每一點在衍射面上進行疊加

%即得到物平面在衍射面上複診的值

uf=u+uf;

endend% figure,

imshow

(conj

(uf).*

conj

(uf),[

])i=uf.

*conj

(uf)

;alpha=pi/

2.00

;%參考光與x軸間的夾角

beita=pi/

2.01

;%參考光與y軸間的夾角

r=exp

(j*k*

(x0*

cos(alpha)

+y0*

cos(beita)))

;%參考光

%下面計算參、物光在全息記錄面上的干涉,得到全息圖

inter=uf.

/max

(max

(sqrt

(i))

)+r;

%調節光束比,並使參、物光干涉

ii= inter.

*conj

(inter)

;%干涉得到全息圖

figure,

imshow

(ii,

),title

('全息圖')%

====

====

====

====

====

====

====

====

==%下面計算再現

%先用s-fft演算法再現全息像ii

ii=double

(ii)

;zi=

1200

;%全息圖到觀察面的距離,單位:公尺

lix=r*lambda*zi/l;

%給出像面的尺寸,單位:公尺

liy=c*lambda*zi/l;

x=linspace

(-lix/

2,lix/

2,r)

;y=linspace

(-liy/

2,liy/

2,c)

;[x,y]

=meshgrid

(y,x)

;f0=

exp(j*k*zi)

/(j*lambda*zi)

*exp

(j*k/

2/zi*

(x.^

2+y.^2

));f=

exp(j*k/

2/zi*

(x0.^2

+y0.^2

));%用t-fft演算法得到的全息圖尺寸與物面一致

% 取再現照明光垂直入射c=

1holo=l/r*l/c*

fftshift

(fft2

(ii.

*f*1))

; holo=holo.

*f0;

ii=holo.

*conj

(holo)

;figure,

imshow

(ii,[0

,max

(max

(ii)).

/1])

,title

('s-fft再現像'

)

顯示三維點雲 三維雷射點雲資料建模

三維雷射點雲資料建模 常見的建模軟體有3dmax cad 草圖大師 revit等,在規則模型建模中,我們常會用到3dmax建模,在這裡就以3dmax為例來說明其在點雲建模應用的經驗 首先我們需要將採集到的點雲資料的原始格式轉換成autodesk軟體可以利用的rcs檔案,轉換工具就是recap或者re...

基於GPU的三維氣象資料顯示

這篇文章是關於氣象局的乙個專案,寫出來旨在總結一下自己兩個月的勞動成果,同時也寫寫東西,畢竟很久沒寫東西了,表達能力也有退化之嫌。不多廢話,直奔主題。基於gpu的三維氣象資料顯示,這個題目已經定義了這個專案執行的硬體要求以及顯示的主要內容。先來說說氣象局提供的一些資料格式,其實說來也很簡單,就是50...

三維顯示的庫

1.vtk 三維顯示 2.opengl 三維顯示 3.pcl 點雲計算 最終選擇 vtk三維顯示 pcl點雲計算 最終選擇 pcl三維顯示 點雲計算 vtk是opengl的上層建築 vtk支援gl介面.他們兩個比較效能是不對的.這問題沒有意義.就跟問 windows和c 那個效率高一樣無意義.當然是...