簡體   English   中英

Matlab中有3D版本的nlfilter嗎?

[英]Is there a 3D version of nlfilter in Matlab?

我想使用Matlab的nlfilter(或類似的功能/工具)在黑白圖像中生成3D(白色)對象。

在2D中,我從一些白色種子點開始,這些點最終定義了2D圖像中的區域/對象。 通過依次應用nlfilter,我可以自然地增大這些區域,直到標記所有像素為止。 我想在3D中做類似的事情,但是nlfilter僅適用於2D圖像。 將3D圖像視為2D圖像的堆棧並在每個此類切片上應用nlfilter是克服此問題的可能方法之一,但這並不是次優的。 相反,使用nlfilter3d()函數會更加方便。 Matlab或其他地方是否存在任何類似的功能?

我不知道是否有3D等效於nlfilter ,但是您是否嘗試過使用形態學運算解決此問題?

由於您使用的是二進制圖像,我認為形態可以幫助您。 例如,對於以下2D圖像,

種子

temp=imdilate(temp0,strel('disk',3));

將在輸出中給出以下圖像:

擴張

如果您具有3D二進制矩陣,則使用定義,即

temp0=false(11,11,11); temp0(5,5,5)=true;

等效於2D矩陣(在三個維度上只有一個白點,其余所有點均為黑色),然后是3D形態,具有以下特征:

str=true(3,3,3);

將輸出這11張圖像(對於每個Z平面):

3D膨脹

我希望這是您要尋找的。

暫無
暫無

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

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