CT重建筆記(五)—2D平行束投影公式

寫的又回去了,因為我發現我理解不夠透徹,反正想到啥寫啥,盡量保證內容質量好簡潔易懂

2D平行束投影公式

p ( s , θ ) = ∫ ∫ f ( x , y ) δ ( x c o s θ + y s i n θ ? s ) d x d y p(s,\theta)=\int \int f(x,y)\delta(x cos\theta + ysin\theta - s) dxdy p(s,θ)=∫∫f(x,y)δ(xcosθ+ysinθ?s)dxdy式1
p ( s , θ ) = ∫ f ( s c o s θ ? t s i n θ , s s i n θ + t c o s θ ) d t p(s,\theta)=\int f(scos\theta - tsin\theta,s sin\theta + t cos\theta)dt p(s,θ)=f(scosθ?tsinθ,ssinθ+tcosθ)dt式2
p ( s , θ ) = ∫ f ( s θ ? + t θ ? ) d t p(s,\theta) = \int f(s\vec \theta + t \vec \theta)dt p(s,θ)=f(sθ +tθ )dt式3
p ( s , θ ) = ∫ f θ ( s , t ) d t p(s,\theta)=\int f_\theta(s,t)dt p(s,θ)=fθ?(s,t)dt式4
這些公式來自醫學圖像重建1.5節,這些都是2D平行束投影公式(我偷懶沒寫積分的上下限)。
s s s表示探測器像素單元的坐標, θ \theta θ表示投影角度。
f ( x , y ) f(x,y) f(x,y)為物體截面的線衰減系數。
x c o s θ + y s i n θ = s x cos\theta + ysin\theta = s xcosθ+ysinθ=s是平面直線方程的一種寫法(Hesse Normal Form,見https://leslielee.blog.csdn.net/article/details/145670396),表示投影角度為 θ \theta θ投影至探測器坐標 s s s處的射線。

式1

δ ( z ) \delta(z) δ(z)是一個廣義函數,具有篩選的性質(見https://leslielee.blog.csdn.net/article/details/144859730,但由于我的數學水平不夠,這篇寫的比較差勁)
給定 s , θ s,\theta s,θ后,若固定 y y y,則式1中位于里面的積分可寫作:
∫ f ( x , y ˉ ) δ ( x c o s θ ˉ + y ˉ s i n θ ˉ ? s ˉ ) d x = f ( x ~ , y ˉ ) \int f(x,\bar y)\delta(x cos \bar \theta + \bar ysin \bar \theta - \bar s) dx = f(\tilde x,\bar y) f(x,yˉ?)δ(xcosθˉ+yˉ?sinθˉ?sˉ)dx=f(x~,yˉ?)
其中, x ~ c o s θ ˉ + y ˉ s i n θ ˉ = s ˉ \tilde x cos \bar \theta + \bar ysin \bar \theta = \bar s x~cosθˉ+yˉ?sinθˉ=sˉ,即 ( x ~ , y ˉ ) (\tilde x, \bar y) (x~,yˉ?)在直線 x c o s θ ˉ + y s i n θ ˉ = s ˉ x cos \bar \theta + ysin \bar \theta = \bar s xcosθˉ+ysinθˉ=sˉ上。
給定 s , θ s,\theta s,θ后,遍歷所有的 y y y式1中位于外面積分的作用),便可實現將位于直線 x c o s θ ˉ + y s i n θ ˉ = s ˉ x cos \bar \theta + ysin \bar \theta = \bar s xcosθˉ+ysinθˉ=sˉ上的 f ( x , y ) f(x,y) f(x,y)進行求和。
因此,式1得到的是位于直線 x c o s θ + y s i n θ = s x cos \theta + ysin \theta = s xcosθ+ysinθ=s上的 f ( x , y ) f(x,y) f(x,y)的和。

若令 θ ? = ( c o s θ , s i n θ ) \vec \theta = (cos \theta, sin \theta) θ =(cosθ,sinθ) x ? = ( x , y ) \vec x = (x,y) x =(x,y),則式1可得到向量寫法:
p ( s , θ ) = ∫ ∫ f ( x , y ) δ ( x ? ? θ ? ? s ) d x d y p(s,\theta)=\int \int f(x,y)\delta(\vec x \cdot \vec \theta - s) dxdy p(s,θ)=∫∫f(x,y)δ(x ?θ ?s)dxdy

式2

( x , y ) (x,y) (x,y)要位于直線 x c o s θ + y s i n θ = s x cos\theta + ysin\theta = s xcosθ+ysinθ=s上才可計算線積分。因此, x = s c o s θ ? t s i n θ , y = s s i n θ + t c o s θ x = s cos\theta - t sin\theta, y=s sin\theta + t cos \theta x=scosθ?tsinθ,y=ssinθ+tcosθ必然已經將 ( x , y ) (x,y) (x,y)約束至直線 x c o s θ + y s i n θ = s x cos\theta + ysin\theta = s xcosθ+ysinθ=s上。

定義 t t t,令 x = s c o s θ ? t s i n θ , y = s s i n θ + t c o s θ x = s cos\theta - t sin\theta, y=s sin\theta + t cos \theta x=scosθ?tsinθ,y=ssinθ+tcosθ,將 x , y x,y x,y帶入直線方程中得到:
( s c o s θ ? t s i n θ ) c o s θ + ( s s i n θ + t c o s θ ) s i n θ = s (s cos\theta - t sin\theta) cos\theta + (s sin\theta + t cos \theta) sin\theta = s (scosθ?tsinθ)cosθ+(ssinθ+tcosθ)sinθ=s
進一步化簡可得:
s = s s=s s=s
因此, x = s c o s θ ? t s i n θ , y = s s i n θ + t c o s θ x = s cos\theta - t sin\theta, y=s sin\theta + t cos \theta x=scosθ?tsinθ,y=ssinθ+tcosθ 等效于 x c o s θ + y s i n θ = s x cos\theta + ysin\theta = s xcosθ+ysinθ=s,即將 ( x , y ) (x,y) (x,y)約束至直線 x c o s θ + y s i n θ = s x cos\theta + ysin\theta = s xcosθ+ysinθ=s上。
(那是如何才能想到這么表示 x , y x,y x,y呢,對此我咨詢了元寶元寶告我跟旋轉矩陣相關。)

x = s c o s θ ? t s i n θ , y = s s i n θ + t c o s θ x = s cos\theta - t sin\theta, y=s sin\theta + t cos \theta x=scosθ?tsinθ,y=ssinθ+tcosθ 可寫成向量矩陣形式:
(見https://leslielee.blog.csdn.net/article/details/135566902
[ c o s θ ? s i n θ s i n θ c o s θ ] [ s t ] = [ x y ] \begin{bmatrix} cos\theta & -sin\theta \\ sin\theta & cos\theta \end{bmatrix} \begin{bmatrix} s \\ t \end{bmatrix}=\begin{bmatrix} x \\ y \end{bmatrix} [cosθsinθ??sinθcosθ?][st?]=[xy?]
x , y x,y x,y s , t s,t s,t逆時針旋轉得到的。

那么, s , t s,t s,t x , y x,y x,y順時針旋轉得到的,可得到表達式:
[ c o s θ s i n θ ? s i n θ c o s θ ] [ x y ] = [ s t ] \begin{bmatrix} cos\theta & sin\theta \\ -sin\theta & cos\theta \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix}=\begin{bmatrix} s \\ t \end{bmatrix} [cosθ?sinθ?sinθcosθ?][xy?]=[st?]
這樣我們便可明白, t = ? x s i n θ + y c o s θ t = -xsin\theta + ycos\theta t=?xsinθ+ycosθ式2給的 t t t并不是沒有限制的。
直線 ? x s i n θ + y c o s θ = t -xsin\theta + ycos\theta = t ?xsinθ+ycosθ=t x c o s θ + y s i n θ = s x cos\theta + ysin\theta = s xcosθ+ysinθ=s垂直,因為 ( ? s i n θ , c o s θ ) ? ( c o s θ , s i n θ ) = 0 (-sin\theta,cos\theta)\cdot (cos\theta,sin\theta) = 0 (?sinθ,cosθ)?(cosθ,sinθ)=0

給定 s , θ s,\theta s,θ后,遍歷所有 t t t便可取到直線 x c o s θ + y s i n θ = s x cos\theta + ysin\theta = s xcosθ+ysinθ=s上的所有 ( x , y ) (x,y) (x,y)點。

式3

θ ? ⊥ = ( ? s i n θ , c o s θ ) \vec \theta^{\perp} = (-sin\theta,cos\theta) θ =(?sinθ,cosθ)
s θ ? + t θ ? ⊥ s\vec \theta + t \vec \theta^{\perp} sθ +tθ 展開便得到: ( s c o s θ ? t s i n θ , s s i n θ + t c o s θ ) (s cos\theta - t sin\theta, s sin\theta + t cos\theta) (scosθ?tsinθ,ssinθ+tcosθ)
而函數 f f f是一個二元函數,自變量是 x , y x,y x,y,因此有:
s c o s θ ? t s i n θ = x s cos\theta - t sin\theta = x scosθ?tsinθ=x
s s i n θ + t c o s θ = y s sin\theta + t cos\theta = y ssinθ+tcosθ=y
這不就是表示 ( x , y ) (x,y) (x,y)是由 ( s , t ) (s,t) (s,t)逆時針旋轉 θ \theta θ得到的。
因此,式3式2的向量寫法。

式4

f θ ( s , t ) = f ( s c o s θ ? t s i n θ , s s i n θ + t c o s θ ) f_\theta (s,t) = f(scos\theta - tsin\theta,s sin\theta + t cos\theta) fθ?(s,t)=f(scosθ?tsinθ,ssinθ+tcosθ),便得到式4

式1表示射線源與探測器同時逆時針旋轉(射線旋轉),物體不動。式2表示物體順時針旋轉,射線不動。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/905925.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/905925.shtml
英文地址,請注明出處:http://en.pswp.cn/news/905925.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

記一次緩存填坑省市區級聯獲取的操作

先說緩存是什么? 緩存主要是解決高并發,大數據場景下,熱點數據快速訪問。緩存的原則首先保證數據的準確和最終數據一致,其次是距離用戶越近越好,同步越及時越好。 再說我們遇到的場景: 接手項目后&#…

無法加載文件 E:\Program Files\nodejs\npm.ps1,因為在此系統上禁止運行腳本

遇到“無法加載文件 E:\Program Files\nodejs\npm.ps1,因為在此系統上禁止運行腳本”這類錯誤,通常是因為你的 PowerShell 執行策略設置為不允許運行腳本。在 Windows 系統中,默認情況下,出于安全考慮,PowerShell 可能會阻止運行未…

OpenWebUI新突破,MCPO框架解鎖MCP工具新玩法

大家好,Open WebUI 迎來重要更新,現已正式支持 MCP 工具服務器,但 MCP 工具服務器需由兼容 OpenAPI 的代理作為前端。mcpo 是一款實用代理,經測試,它能讓開發者使用 MCP 服務器命令和標準 OpenAPI 服務器工具&#xff…

松下SMT貼片機選型與高效應用指南

內容概要 在電子制造領域,SMT貼片機作為核心生產設備,其選型與應用直接關系到企業產能與產品質量。本文聚焦松下SMT貼片機系列,通過系統性梳理設備選型邏輯與技術特性,為制造企業提供多維度的決策參考。重點涵蓋主流機型性能參數…

計算機網絡(1)——概述

1.計算機網絡基本概念 1.1 什么是計算機網絡 計算機網絡的產生背景 在計算機網絡出現之前,計算機之間都是相互獨立的,每臺計算機只能訪問自身存儲的數據,無法與其他計算機進行數據交換和資源共享。這種獨立的計算機系統存在諸多局限性&#…

React學習(二)-變量

也是很無聊,竟然寫這玩意,畢竟不是學術研究,普通工作沒那么多概念性東西,會用就行╮(╯▽╰)╭ 在React中,變量是用于存儲和管理數據的基本單位。根據其用途和生命周期,React中的變量可以分為以下幾類&…

完整卸載 Fabric Manager 的方法

目錄 ? 完整卸載 Fabric Manager 的方法 1?? 停止并禁用服務 2?? 卸載 Fabric Manager 軟件包 3?? 自動清理無用依賴(可選) 4?? 檢查是否卸載成功 ? 補充(僅清除服務,不刪包) ? 完整卸載 Fabric Mana…

ABP vNext 多租戶開發實戰指南

🚀 ABP vNext 多租戶開發實戰指南 🛠? 環境:.NET 8.0 ABP vNext 8.1.5 (C# 11, EF Core 8) 📚 目錄 🚀 ABP vNext 多租戶開發實戰指南🏠 一、什么是多租戶?📦 二、ABP 多租戶的核…

【WIN】筆記本電腦忘記密碼解決辦法/筆記本電腦重裝系統筆記/bitlocker忘記密碼的解決辦法

通過安全模式下的CMD命令找回 具體的步驟就是: 首先通過筆記本的對應的一個進入安全模式的一個方式 進入安全模式之后,一直點著這個診斷,然后高級選項進去就可以看到了。 但是這種方法應該是屬于安全漏洞,所以只適合老版本。如果是…

人工智能100問?第25問:什么是循環神經網絡(RNN)?

目錄 一、通俗解釋 二、專業解析 三、權威參考 循環神經網絡(RNN)是一種通過“記憶”序列中歷史信息來處理時序數據的神經網絡,可捕捉前后數據的關聯性,擅長處理語言、語音等序列化任務。 一、通俗解釋 想象你在和朋友聊天,每說一句話都會根據之前的對話內容調整語氣…

實驗八 基于Python的數字圖像問題處理

一、實驗目的 ? 培養利用圖像處理技術解決實際問題的能力。 ? 培養利用圖像處理技術綜合設計實現的能力。 ? 掌握在Python環境下解決實際問題的能力。 ? 熟練掌握使用cv2庫對圖像進行處理 ? 熟練掌握使用區域生長法提取圖片中感興趣的區域 二、實驗內容 本次實驗內容為…

STM32F10xx 參考手冊

6. 什么是寄存器 本章參考資料:《STM32F10xx 參考手冊》、《STM32F10xx數據手冊》、 學習本章時,配合《STM32F10xx 參考手冊》“存儲器和總線架構”及“通用I/O(GPIO)”章節一起閱讀,效果會更佳,特別是涉及到寄存器說明的部分。…

TCVectorDB 向量數據庫簡介

簡介 盡管目前大多數開源向量數據庫來自海外,配置簡單且性能優異,但由于網絡原因,如果向量數據庫部署在海外,而產品面向國內市場,網絡延遲將是必須考慮的問題。因此,選擇國內服務提供商的云向量數據庫往往是…

力扣-比特位計數(統計一個數二進制下1的個數)

下面是題面 1.用c的內置函數__builtin_popcount() 語法:__builtin_popcount(int x),函數會返回一個二進制下x所含的1的個數 2.直接數位枚舉 這是最慢也是暴力做法,寫法也很簡單 用一個while循環…

青少年編程與數學 02-019 Rust 編程基礎 16課題、包、單元包及模塊

青少年編程與數學 02-019 Rust 編程基礎 16課題、包、單元包及模塊 一、包1. **什么是 Crate?**2. **Crate 的類型**3. **Crate 的結構**4. **使用 Crate**5. **創建和管理 Crate**6. **發布 Crate**7. **Crate 的優勢**8. **示例**創建一個 library crate 二、單元…

強化學習入門:馬爾科夫獎勵過程二

文章目錄 前言1、動作2、策略總結 前言 最近想開一個關于強化學習專欄,因為DeepSeek-R1很火,但本人對于LLM連門都沒入。因此,只是記錄一些類似的讀書筆記,內容不深,大多數只是一些概念的東西,數學公式也不會…

【大數據知識】今天聊聊Clickhouse部署方案

ClickHouse部署 一、ClickHouse部署一、單節點部署1. 安裝準備2. 目錄規劃3. 核心配置4. 啟動服務 二、集群部署方案1. 集群拓撲設計2. 分布式配置3. 表引擎選擇 三、安全加固1. 認證配置2. SSL加密 四、性能優化1. 核心參數調優2. 資源隔離 五、監控與維護1. Prometheus 集成2…

打卡Day28

題目1:定義圓(Circle)類 要求: 1.包含屬性:半徑 radius。 2.包含方法: ●calculate_area():計算圓的面積(公式:πr)。 ●calculate_circumference()&#xff…

BERT 進階:Albert 模型詳解與實戰

目錄 BERT 進階:Albert 模型詳解與實戰 一、ALBERT 的優化策略 (一)Embedding 參數因式分解 (二)跨層參數共享 (三)巨劍連貫性損失 二、ALBERT 模型架構 (一)Tran…

使用 163 郵箱實現 Spring Boot 郵箱驗證碼登錄

使用 163 郵箱實現 Spring Boot 郵箱驗證碼登錄 本文將詳細介紹如何使用網易 163 郵箱作為 SMTP 郵件服務器,實現 Spring Boot 項目中的郵件驗證碼發送功能,并解決常見配置報錯問題。 一、為什么需要郵箱授權碼? 出于安全考慮,大…