基於Siddon演算法的CT正投影計算

2021-09-29 20:01:35 字數 1039 閱讀 4651

ct技術在醫學診斷、工業無損檢測、安檢及地質勘測等方面發揮著重要的作用。ct技術的數理基礎是radon變換,在實際的ct系統中,radon正變換稱為投影資料的採集,radon逆變換稱為切片影象重建。ct投影**在優化radon變換的投影成像過程,測試radon逆變換的ct重建演算法等方面具有十分重要的意義。ct投影**可以實現任意ct掃瞄引數設定,同時ct投影**為ct重建演算法的效能測試提供了重要保障。

本文著重介紹ct正投影常用的siddon演算法,文章全文見

siddon演算法是針對三維空間求射線與體素相交的長度,這裡以二維為例,如下圖所示。

將空間體素離散成x方向、y方向的一條條網格線(三維就是x、y和z方向的網格線)。設射線源的座標(p1_x,p1_y),探測器某一單元的座標為(p2_x,p2_y),則射線源與該探測器單元的連線就是一條射線。該射線與空間網格的相交情況有兩種:(1)該射線穿過待重建的區域(有效射線);(2)該射線不穿過待重建的區域(無效射線)。無效射線未經過物體區域,即射線未產生衰減,不作討論。

當射線穿過待重建區域時,會與空間離散的網格線產生一系列交點,如上圖所示,紅色交點代表射線與x方向網格線的交點,白色交點代表射線與y方向網格線的交點。該射線上所有點的座標都可以用x=p1_x + alpha_x*(p2_x - p1_x),y=p1_y + alpha_y*(p2_y - p1_y)來表示,若得到alpha_x和alpha_y,則可以得到點的座標。

同樣,要得到射線與體素相交的長度,則必須得到射線與網格線所有的交點座標;要得到所有的交點座標,就必須得到所有交點對應的alpha_x和alpha_y。然後將alpha_x和alpha_y變成乙個向量,通過排序,提出重複元素,得到乙個向量alpha。射線與體素相交的長度為l(i)=[alpha(i+1) - alpha(i)]*sqrt((p1_x - p2_x)^2 + (p1_y - p2_y)^2),然後體素的索引也可由向量alpha得到。

詳細的程式見該程式是基於等距扇束ct系統進行的投影**,採用的是shepp-logan模型。

機械人 基於指數積的機械臂正運動學演算法

在學習了剛體運動的指數座標表示和運動旋量後,我又對使用指數積法 poe 對機械臂進行正運動學建模,相比於dh引數法,感覺poe還是非常簡單直接的,在此對我的學習進行總結,如有錯誤歡迎指出。在使用poe建立正運動學模型時,我們需要獲得以下引數 這裡的例項採用 現代機械人學 這本書中的例子,選擇了乙個3...

基於Box Muller變換的正態隨機數生成方法

為什麼我的眼裡常含淚水?因為我有乙個演算法不會。為了節約點眼淚,今天我們就來介紹著名的box muller變換,基於這種變換,我們便可以得到乙個從均勻分布中得到正態分佈取樣的演算法,本文也會詳細解釋其中蘊含的數學原理。box muller變換最初由 george e.p.box 與 mervin e...

基於正太分布的一元離群點檢測

以下為matlab實現程式 clc clear 利用最大似然估計,檢測一元離群點 氣溫測試資料,單位為攝氏度,這裡假設資料服從正太分布 tdata 24,24.1,28.9,28.9,29.0,29.1,29.1,29.2,29.2,29.3,29.4,29,28,29.2,29.3,29,29.5...