91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

裕民县| 鄯善县| 呼伦贝尔市| 崇明县| 沈丘县| 万安县| 尚志市| 伊宁县| 乐安县| 布尔津县| 竹溪县| 新绛县| 广安市| 克拉玛依市| 怀集县| 尼木县| 竹北市| 福州市| 泗水县| 喜德县| 开阳县| 沾益县| 武隆县| 绥江县| 许昌县| 七台河市| 虹口区| 明水县| 达孜县| 万宁市| 宜丰县| 曲阳县| 盐亭县| 新巴尔虎右旗| 孝义市| 昂仁县| 沂源县| 晴隆县| 黑山县| 兴宁市| 贡嘎县|