CT重建笔记(四)——三维重建

人如果不思考不学习,天天刷短视频,跟咸鱼有什么区别?

平行的线积分数据(X射线变换)

平行光束图像重建的理论基础是中心切片定理(二维情形见我的博客https://leslielee.blog.csdn.net/article/details/134722426)。
三维平行光束的中心切片定理:
中心切片定理表示为:位于 Π ( θ ) \Pi(\theta) Π(θ) F ( w x , w y , w z ) F(w_x,w_y,w_z) F(wx,wy,wz) 等于 P ( w u , w v ) P(w_u,w_v) P(wu,wv)
其中,
三维重建体 f ( x , y , z ) f(x,y,z) f(x,y,z)在投影角度为 θ \theta θ的投影 p ( u , v ) p(u,v) p(u,v)的傅里叶变换为 P ( w u , w v ) P(w_u,w_v) P(wu,wv)
三维重建体 f ( x , y , z ) f(x,y,z) f(x,y,z)的傅里叶变换为 F ( w x , w y , w z ) F(w_x,w_y,w_z) F(wx,wy,wz)
过原点且与探测器平面平行的平面为 Π ( θ ) \Pi(\theta) Π(θ)

基于中心切片定理,可以确定出哪些 θ \theta θ轨迹可以满足 F ( w x , w y , w z ) F(w_x,w_y,w_z) F(wx,wy,wz)的每一点都被测到。
比如圆轨迹,扫描过程中平行束始终与探测器法向量平行,与x-y平面的法向量垂直。但由于对称性,扫180度圆轨迹便可得到完整数据。

Orlov’s condition:如果单位球上的每个大圆都与 Ω \Omega Ω有交点,则扫描数据完整。
其中,平行束的方向为单位向量 θ \theta θ θ \theta θ的轨迹为 Ω \Omega Ω,大圆(great circle)是单位球上最大的圆周。
紧集(compact set)、完备集(perfect set)和完全集(complete set)的对比分析h. ttps://www.cnblogs.com/readalps/p/16671249.html

投影/反投影PSF 是指 将Dirac Delta函数先投影再反投影得到的响应。该PSF是空间移不变的。

b = f ∗ ∗ ∗ h b=f***h b=fh
其中, h h h为投影/反投影PSF, b b b为反投影, f f f为重建体, ∗ ∗ ∗ *** 为三维卷积。

2D情形下,360度扇束与360度平行束的 h h h相同, h = 1 / x 2 + y 2 h=1/\sqrt{x^2 + y^2} h=1/x2+y2
3D情形下,若 Ω \Omega Ω是整个单位球面,则平行束 h = 1 / ( x 2 + y 2 + z 2 ) h=1 / (x^2+y^2+z^2) h=1/(x2+y2+z2)
疑问:两个脉冲响应相比,其中一个更快趋于0表明什么?

F { 1 / x 2 + y 2 } = 1 / w x 2 + w y 2 F\{ 1/\sqrt{x^2 + y^2} \} = 1/\sqrt{w_x^2+w_y^2} F{1/x2+y2 }=1/wx2+wy2
F { 1 / ( x 2 + y 2 + z 2 ) } = π / w x 2 + w y 2 + w z 2 F\{ 1/(x^2 + y^2 + z^2) \} = \pi/\sqrt{w_x^2+w_y^2 + w_z^2} F{1/(x2+y2+z2)}=π/wx2+wy2+wz2
推导这个推荐用deepseek,很方便

若已知三维斜坡滤波器 G G G,则对投影进行反投影再用 G G G进行三维滤波。
若想先滤波再反投影,二维滤波器可通过用 Π ( θ ) \Pi(\theta) Π(θ)对三维滤波器截取得到。

平行的面积分数据(Radon变换)

射线源发出等间隔平行的平面束,被一维探测器所接收,探测器单元采集到的物体的面积分。其实面积分数据在实际中不常见。

三维平行面束的中心切片定理:
位于 L ( θ ) L(\theta) L(θ) F ( w x , w y , w z ) F(w_x,w_y,w_z) F(wx,wy,wz) 等于 P ( w , θ ˉ ) P(w,\bar{\theta}) P(w,θˉ)
其中,
一维探测器的方向向量为 θ ˉ \bar{\theta} θˉ
与探测器平行且过原点的直线为 L ( θ ˉ ) L(\bar{\theta}) L(θˉ)
三维重建体 f ( x , y , z ) f(x,y,z) f(x,y,z)的投影为 p ( s , θ ˉ ) p(s,\bar{\theta}) p(s,θˉ),其傅里叶变换为 P ( w , θ ˉ ) P(w,\bar{\theta}) P(w,θˉ)
三维重建体 f ( x , y , z ) f(x,y,z) f(x,y,z)的傅里叶变换为 F ( w x , w y , w z ) F(w_x,w_y,w_z) F(wx,wy,wz)

三维Radon反演公式:先求解投影二阶导数 d 2 p ( s , θ ˉ ) d s 2 \frac{d^2 p(s,\bar{\theta})}{ds^2} ds2d2p(s,θˉ),再进行反投影。
这里的反投影是将一维探测器上探元的导数值反投影至该探元对应的平面。即一个点扩展成一个面,而X射线变换中的反投影是将一个点扩展为一条线。
Radon变换反投影也可以分两步,先扩展出一条直线,再由直线上的每一点再扩展出一条直线。

锥形束数据

1983年Tuy发表的论文中有一个引理,几乎等同于锥形束的中心切片定理。

Tuy发表的论文还给出了锥形束数据足量条件,Tuy条件表述为:每一个与物体相交的平面都必须包含至少一个锥形束的焦点位置。
圆轨迹CBCT不满足Tuy条件,圆圈加直线或螺旋CBCT满足Tuy条件。

Feldkamp算法

将锥形束重建转化为扇形束重建。

Feldkamp算法:由Feldkamp,Davis,和 Kress 三人共同发表,用于重建圆轨迹CBCT。
远离圆轨道平面的区域伪影更严重,伪影表现为:图像数值较低,层间图像互串,物体边缘出现负值。
疑问:物体沿轴向是一个常数,则Feldkamp算法可精确重建,但如果沿轴向物体内部有不同缺陷呢?

锥形张角:焦点与中心列两端点形成的角度

Feldkamp算法
1、将投影乘以 c o s α cos\alpha cosα α \alpha α为射线与中心射线的夹角
2、将处理后的投影逐行进行斜坡滤波
3、对滤波数据进行加权反投影,权重为射线长度

Grangeat算法

用三维Radon反演公式重建锥形束。

对投影进行线积分来构造物体的面积分投影。但这样得到是加权的Radon投影,权重为 1 / r 1/r 1/r
∫ L c o n e b e a m t r a n s f o r m = 1 r R a d o n t r a n s f o r m \int_L conebeam \space transform = \frac{1}{r} Radon \space transform Lconebeam transform=r1Radon transform
r d α = d t r d\alpha = dt rdα=dt
联立两式得到:
∫ L c o n e b e a m t r a n s f o r m = d α d t R a d o n t r a n s f o r m \int_L conebeam \space transform = \frac{d\alpha}{dt} Radon \space transform Lconebeam transform=dtdαRadon transform
∂ ( ∫ L c o n e b e a m t r a n s f o r m ) ∂ α = ∂ ( R a d o n t r a n s f o r m ) ∂ t \frac{\partial (\int_L conebeam \space transform)}{\partial \alpha} = \frac{\partial (Radon \space transform)}{\partial t} α(Lconebeam transform)=t(Radon transform) 式1

三维Radon反演公式是对Radon投影进行二阶导再进行Radon反投影。由式1得到的结果相当于对Radon投影求了一阶导数,只需再求一阶导数便可进行反投影。

不早了,晚安,有空继续更新本文,(●'◡'●)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/34733.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

量化交易学习笔记02:双均线策略

双均线策略示例 个股:中国平安 回测日期:2022-5-1至2023-5-1 短均线:5天 长无线:10天 代码: def initialize(context):# 初始化此策略# 设置我们要操作的股票池, 这里我们只操作一支股票# """标的&qu…

利用余弦相似度在大量文章中找出抄袭的文章

我前面的2篇文章分别讲了如果利用余弦相似度来判断2篇文章的相似度,来确定文章是否存在抄袭,和余弦相似度的原理,即余弦相似度到底是怎么来判断文章的相似性高低的等等。这一篇再说下,对于文章字数多和大量文章时,如果…

在 Kaggle 中绘制中文乱码解决

在 Kaggle 中绘制中文时,需要设置 Matplotlib 的字体,否则中文会显示为乱码。可以使用 SimHei(黑体)或 Microsoft YaHei(微软雅黑)。 解决方案 使用 matplotlib 设置中文字体在 Kaggle 安装 SimHei 字体 …

在 Ubuntu 服务器上使用宝塔面板搭建博客

📌 介绍 在本教程中,我们将介绍如何在 Ubuntu 服务器 上安装 宝塔面板,并使用 Nginx PHP MySQL 搭建一个博客(如 WordPress)。 主要步骤包括: 安装宝塔面板配置 Nginx PHP MySQL绑定域名与 SSL 证书…

Linux线程

1.线程概念 在一个程序里的一个执行路线就叫做线程(thread),更准确定义:线程是一个进程内部的控制序列 进程至少有一个执行路线,线程在进程内部运行,本质是在进程地址空间内运行,在Linux系统中,CPU眼中&a…

【TI MSPM0】GPIO学习

一、文件样例查找 以GPIO软件轮询为例 下面的四个文件夹分别为不同开发环境提供支持 二、工程导入 1.点击file-点击import project 2.点击browse 3.找到对应的文件打开,选择 推荐使用ticlang,能够提供更加优化的效率 点击finish 三、工程学习 1.readme 文件 &a…

二叉树的基本操作与实现:C语言深度剖析

目录 代码整体框架 1. #define _CRT_SECURE_NO_WARNINGS 2. 头文件引入 3. typedef int BTtype; 4. 二叉树节点结构体定义 二叉树的创建 1. BuyNode 函数 2. CreatNode 函数 二叉树的遍历 前序遍历 中序遍历 后序遍历 二叉树属性的计算 节点个…

深入解析 Latent Diffusion Model(潜在扩散模型,LDMs)(代码实现)

深入解析 Latent Diffusion Model:从传统 Diffusion Model 到高效图像生成的进化 近年来,生成模型在图像合成领域取得了显著进展,其中 Diffusion Model(扩散模型,DMs)以其出色的生成质量和理论上的稳健性逐…

线性回归原理推导与应用(五):波士顿房价预测实战

波士顿房价是一个非常经典的多元线性回归入门案例数据集。波士顿房价预测数据集包含了可能会影响房价的十三个因素,并给出了实际的房价(单位为万美元) 波士顿房价数据集数据集下载地址:https://www.kaggle.com/datasets/altavish…

基于CATIA二次开发的低音炮腔体容积精准计算技术详解

一、功能概述 本工具通过PySide6与CATIA V5深度集成,实现了低音炮上下腔体内体积的自动化测量系统。系统采用三维实体建模法进行容积计算,相较于传统手工计算方式,精度提升可达0.5%。主要功能模块包括: 壳体特征自动识别动态草图…

向量数据库原理及选型

向量数据库 什么是向量什么是向量数据库原理应用场景 向量数据库的选型主流向量数据库介绍向量数据库对比主流向量数据库对比表 选型建议 什么是向量 向量是一组有序的数值,表示在多维空间中的位置或方向。向量通常用一个列或行的数字集合来表示,这些数…

IE代理切换器v1.2免费版

虽然IE浏览器已经过时了,但很多其他浏览器,比如谷歌浏览器的代理服务器设置,都还是基于IE浏览器来进行设置的,如果你的工作场景需要切换不同的代理服务器来访问网络,那这款工具适合你,目前该工具可以实现IE…

模运算的艺术:从基础到高阶的算法竞赛应用

在算法竞赛中,模运算(取模运算)是一个非常重要的概念,尤其在处理大数、防止溢出、以及解决与周期性相关的问题时。C 中的模运算使用 % 运算符,但它的行为和使用场景需要特别注意。 1. 模运算的基本概念 模运算是指求一…

SpringBoot前后端不分离,前端如何解析后端返回html所携带的参数

有一个SpringBoot实现的前后端不分离项目,当前端跳转某个界面时,比如下面的菜单树按钮,后端在返回页面menuTree.html时,还携带了一个参数角色roleId,以便打开菜单树,还要根据这个角色查询对应的分配授权的菜…

操作系统八股文整理(一)

操作系统八股文整理 一、进程和线程的区别二、进程与线程的切换过程一、进程切换进程切换的步骤: 二、线程切换线程切换的步骤: 三、进程切换与线程切换的对比四、上下文切换的优化 三、系统调用一、系统调用的触发二、从用户空间切换到内核空间三、执行…

卷积神经网络(CNN)之 EfficientNet

在深度学习领域,模型的计算效率与性能之间的平衡一直是一个核心挑战。随着卷积神经网络(CNN)在图像分类、目标检测等任务中取得显著成果,模型的复杂度和计算需求也急剧增加。2019年,Google Research 提出的 EfficientN…

leetcode0031 下一个排列-medium

1 题目: 下一个排列 官方标定难度:中等 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如,arr [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整数数组的 下一…

Suno的对手Luno:AI音乐开发「上传参考音频 - 方式二:通过URL的方式」 —— 「Luno Api系列|AI音乐API」第12篇

导读 今天来看下Luno Api的上传参考音频 - 方式一:通过二进制流的方式。 参考文件,主要是用于在创作的过程中,希望AI参考这个音乐的曲风和声音来进行创作, 这一节看看如何直接使用url的方式进行实现。 申请和使用 「已经有API…

【开源+代码解读】Search-R1:基于强化学习的检索增强大语言模型框架3小时即可打造个人AI-search

大语言模型(LLMs)在处理复杂推理和实时信息检索时面临两大挑战:知识局限性(无法获取最新外部知识)和检索灵活性不足(传统方法依赖固定检索流程)。现有方法如检索增强生成(RAG)和工具调用(Tool-Use)存在以下问题: RAG:单轮检索导致上下文不足,无法适应多轮交互场景…

Blender-MCP服务源码2-依赖分析

Blender-MCP服务源码2-依赖分析 有个大佬做了一个Blender-MCP源码,第一次提交代码是【2025年3月7号】今天是【2025年月15日】也就是刚过去一周的时间,所以想从0开始学习这个代码,了解一下大佬们的开发思路 1-核心知识点 from mcp.server.fas…