亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python解析多幀dicom數據的示例分析

發布時間:2021-07-05 10:10:35 來源:億速云 閱讀:212 作者:小新 欄目:開發技術

這篇文章主要介紹Python解析多幀dicom數據的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

概述

pydicom是一個常用python DICOM parser。但是,沒有提供解析多幀圖的示例。本文結合相關函數和DICOM知識做一個簡單說明。

DICOM多幀數據存儲

DICOM標準中關于多幀數據存儲的最重要一部分說明是PS3.5 Annex A.4 A.4 Transfer Syntaxes For Encapsulation of Encoded Pixel Data。

無論何時,Pixel Data都存放在Pixel Data (7FE0,0010)中。有可能是直接存放的(native),也有可能是被打包存放的(encapsulated)。常見的多幀圖一般采用打包存放的方式,特別是在數據存采用壓縮格式的時候。

在打包存放時,數據被拆分成很多數據段(Data Stream Fragment),每個段保存成一個Tag為(FFFE,E000)的DICOM 項目(item)。其中第一個項目保存基礎偏移表(Basic Offset Table),保存每個幀的起始偏移。然后,后面的數據段保存真正的數據。

**理論上,一幀(Frame)可以保存在多個數據段(Fragment)中。**但是,一個數據段不會保存兩幀的數據。實際應用中,很少見到Frame跨數據段的情況,不過好的DICOM Parser應該支持這種情況。這就是導致有些DICOM庫的接口看起來有點古怪的原因。

pydicom應用

以pydicom 1.2為例,pydicom.encaps封裝了多幀有關的功能。解析最可能用到的幾個函數

多幀使用 pydicom.encaps來處理

pydicom.encaps.decode_data_sequence 返回每個(FFFE,E000)組成的item,形式是byte string的list。這樣一次拿到了所有fragment數據,可能比較耗內存。注意理論上拿到的不是幀(Frame)

pydicom.encaps.generate_pixel_data 生成一個generator。每次迭代,返回做成一個fragments tuple,每個fragment是一個bytes,每個tuple是一個Frame。如果一個Fame保存在一個Fragment中。tuple就只有一個元素。

pydicom.encaps.generate_pixel_data_frame 迭代每次返回一個bytes,這個bytes代表了幀的全部數據。這應該是最常用的函數。代碼實現就是把generate_pixel_data生成的tuple給拼接起來了。

這幾個方法的輸入都是pixel_array。相應的Pydicom提供了用fp做參數的方法。

以上是“Python解析多幀dicom數據的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长阳| 福贡县| 运城市| 南乐县| 贵阳市| 攀枝花市| 来安县| 宣武区| 扶余县| 临泽县| 永福县| 葫芦岛市| 林甸县| 青川县| 友谊县| 广昌县| 宿松县| 咸阳市| 五家渠市| 临颍县| 墨玉县| 和平区| 滨州市| 平果县| 曲麻莱县| 浦东新区| 伊川县| 崇信县| 聂荣县| 阳西县| 广饶县| 葫芦岛市| 讷河市| 福海县| 安多县| 合川市| 东乡县| 迁安市| 平乐县| 泗洪县| 都匀市|