簡體   English   中英

在MATLAB中如何從具有中心點和X,Y,Z長度的3D體積中提取立方體?

[英]how to extract a cube from a 3D volume having a centre point and lengths of X, Y, Z in MATLAB?

在MATLAB中,如果我們假設立方體的起點是左上角,

3D_vol(Start_x : Start_x + SizeX-1, Start_y : Start_y + SizeY-1, Start_z : Start_z + SizeZ-1);

得到一個具有X,Y,Z和每個大小的起點的立方體。 現在,如果起始點是多維數據集的中心 ,我如何獲得該多維數據集?

我嘗試了以下操作,但是當X / Y / Z的大小為偶數時,這是不正確的。

3D_vol(start_x - (SizeX/2) - 1 : Start_x + (SizeX/2) - 1, ......

3D_vol是3d矩陣。

我假設起點是整數。
如果SizeX為奇數, SizeX容易。 您有中心點,每邊都有(SizeX-1)/2

start_x + (-(SizeX-1)/2:(SizeX-1)/2)

這將使您總共獲得1+2*(SizeX-1)/2 = SizeX點。
如果SizeX是偶數,則start_x實際上不是中心,而是最接近它的點之一。 您應該確定它是居中還是居中。 讓我們假設離開。 然后,在左側,您需要start_x點和SizeX/2-1更多點。 其余的將在右邊:

start_x + (-(SizeX/2-1):SizeX/2)

這將使您總共獲得1+(SizeX-1)/2-1+SizeX/2 = SizeX點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM