日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

3D Slicer简单三维重建

發布時間:2023/12/8 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3D Slicer简单三维重建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

本文章使用3D Slicer對輸入數據進行三維重建,結合別人的經驗以及自己的摸索,寫成這一篇文章,只是簡單的記錄一下自己做過的事情,并沒有多少深入的去研究,對一些東西可能理解的不夠好,希望讀這篇文章的人能夠諒解,不喜勿噴。

參考資料

CT圖片三維重建方法之3DSlicer篇
臨床影像實踐
B站視頻–血腫及中線測量

補充說明

獲取切片的間距,這里我用的是python的代碼來實現的,所用的圖片是使用LITS數據集由NII文件轉為png圖片來實現的,NII轉PNG圖片在我的博客另外一篇文章里面有,這里獲取切片間距信息的代碼如下:

"""查看數據軸向spacing分布 """import os import sys sys.path.append(os.path.split(sys.path[0])[0])from tqdm import tqdm import SimpleITK as sitkimport parameter as paract_path = r'G:\Python\liversegment\ImageResource\ImageTraning\data' spacing_list = []for file in os.listdir(ct_path):ct = sitk.ReadImage(os.path.join(ct_path, file), sitk.sitkInt16)temp = ct.GetSpacing()[-1] # 關鍵語句print('-----------------')print(file+' '+str(temp))spacing_list.append(temp)print('mean:', sum(spacing_list) / len(spacing_list))spacing_list.sort() print(spacing_list)# 訓練集中的平均spacing是1.59mm # 測試集中的數據的spacing都是1mm

按照參考的文章中的第一篇文章基本可以把數據導入成功,但是在測量的時候,我愣是沒有找到在哪里能看見測量距離的大小,最后在第二個板塊的3D視角看到了,如下圖所示:

模型重建

按照第一篇文章的做法,不知道是不是我操作不當的原因還是什么,保存的數據再導入的時候,顯示的只是像前面的步驟那樣把png圖片導入并且把間距和比例修改之后的樣子,并沒有我想象的那種直接就是一個建立好的三維模型。于是就去找資料,看視頻,之后在B站上面看到有人的教程可以實現自己的目的。在這里我簡單的把我所使用的3種可以實現導入數據即為3D模型的方法簡單的說一下,詳細的可以點開前面的B站鏈接看B站的UP主的視頻。

手動涂畫

按照第一個文章,把間距和比例調整好之后,切換到模塊Segment Editor

然后再按照下面圖的順序將每一層的區域涂畫

這里我只是涂畫一層演示而已,因為這種方法不適合使用在這么多切片的數據上,適合涂畫腫瘤等微小物塊,占切片數量少的情況。
接下來是保存數據的重點
點擊圖中的按鈕(Segmentations…),然后拉到底下,選擇導出



接下來就是保存模型的時候了,可以點擊左上角的File再選擇Save,或者直接點擊下面一列的第三個圖標

或者

因為我只需要保存3維的模型,所以我只保留最后一個勾,保存路徑可以點擊Save旁邊的按鈕來選擇位置

最后點擊保存就可以了,然后我們來看一下效果,導入數據的時候直接把保存的vtk文件拖入到3D Slicer然后出現一個彈窗,點擊OK就可以了

效果圖如下所示,正好是一層手動涂畫的效果:

閾值選擇+裁剪

重復第一種方法同樣的步驟,然后再點擊閾值按鈕,更改閾值覆蓋整個想要重建的區域,然后再點擊顯示3D模型的按鈕,顯示出閾值覆蓋全部的3D模型,最后點擊Apply


然后動手開始裁剪,可以選擇裁剪方式,這里選擇的是把圈起來的部分剪掉

剪掉效果如下圖:

這種方法適合對重建區域比較熟悉的人使用,因為很容易剪錯區域,保存顯示的方法跟第一種方法后面的一樣,都是導出來顯示。這里就不展示了,因為這種方法確實耗時。

分割好的模型+閾值法

因為我有分割好的數據,所以可以直接使用分割好的數據進行三維重建,這時就要使用全部的輸入數據進行重建,還是跟之前的一樣的步驟,這里簡單的把步驟總結一下,1、導入數據 2、調整間距 3、調整比例 4、切換Segment Editor模塊 5、添加分割模塊 6、選擇閾值(這里要選中全部的數據)7、點擊3D顯示按鈕查看效果 8、導出模型 9、保存數據 這里貼一下我使用分割后的數據進行三維重建的效果


這里貼一下動態圖,設置了不同的透明度顯示,這個動態圖是一個gif格式的文件,百度搜索gifcamera可以找得到相應的軟件。

結束語

到這里,文章結束了,希望自己的一些經驗對大家有幫助,如果有不當之處請大家批評指出。

總結

以上是生活随笔為你收集整理的3D Slicer简单三维重建的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。