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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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 项目中的邮件验证码发送功能,并解决常见配置报错问题。 一、为什么需要邮箱授权码? 出于安全考虑,大…