迭代重建算法中投影矩阵的计算_重建算法 投影矩阵-程序员宅基地

技术标签: matlab  医学图像重建  

        在前面学习的重建算法都是属于解析法,它是以Radon变换为理论基础,首先对投影数据在连续域进行一些处理,然后将其离散化进行重建。接下来学习到的是图像重建的迭代算法,该算法的主要思路是:从一幅假设的初始图象出发,采用逐步逼近的方法,将理论投影值与实际测量投影值进行比较,在某种最优准则下寻找最优解。

        该算法本质上类似于解方程组,但是在实际的图像重建过程中,由于运算量巨大、方程的欠定性以及测量误差、噪声的影响等原因,直接通过求逆矩阵来解方程组是比较困难的,很难将其应用在实际生活中。于是产生了一系列迭代方法来解决这个问题。常用的迭代方法包括代数重建法(ART)、联合代数重建算法(SART)、最大似然期望最大化算法(MLEM)和有序子集期望最大化算法(OSEM),其中最后两种算法主要用于PET和SPECT。接下来主要对ART算法进行解释。

       ART算法是一个‘行运算’算法,它每次考虑一条射线就更新一次图像。在整个ART运算中,投影矩阵是迭代重建的关键因素,是获取投影数据与断层图像矢量相联系的桥梁。如果求解的投影矩阵越精确,那么重建后的图像的质量越高。在我们计算投影矩阵的时候,主要有四种模型:关于面积、关于是否穿过某个像素、关于是否穿过某个像素的中心、关于穿过某个像素的长度。其中,第一种精确度最高,但是求解也最为复杂,实现起来比较困难。第二种和第三种虽然容易实现,但是精确度太低,重建得到的图像质量不高。第四种是我们最为常用的求解投影矩阵的模型,即易于实现,又可以得到较为满意的图像质量。

        ART算法表达式:       X^{next}=X^{current}-\frac{A_{i}X^{current}-p_{i}}{\left \| A_{i} \right \|^{2}}{X_{i}}^{T}

其中,A_{i}X 执行的是沿着第i条射线的投影运算,p_{i} 是在第i个探测像元上测得的投影数据,\left \| A_{i} \right \|^{2}=\sum_{j}^{}{a_{ij}}^{2}是沿着第i条射线做反投影。

        假设th表示射线的角度0~180,kin:从该像素编号进入,kout:从该像素编号射出,xin:入射点的横坐标,yin:入射点的纵坐标,xout:出射点的横坐标,yout:出射点的纵坐标,delta:像素的尺寸,u(1,2N):存储射线穿过的像素编号,v(1,2N):存储射线在穿过的像素内部的长度。下面对几种入射情况进行讨论:

1、th=90

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ZHLY0307/article/details/119564178

智能推荐

ParseError错误-程序员宅基地

文章浏览阅读1.4k次。问题:ParseError!原因分析:在服务器中发送数据后,返回json格式中,由于没有解释到json格式,就会出现这个错误!出现情况:1、json格式中有换行符 ;2、jQuery从1.4开始就对json严格化了,需要对值加上双引号。[jQuery 1.3中不会出现这个问题];3、还未遇到…… [希望有遇到除以上两种情况外的朋友 提一下!可多交流..._parseerror at /user/userlist

POJ - 3026 Borg Maze bfs+最小生成树。-程序员宅基地

文章浏览阅读55次。http://poj.org/problem?id=3026题意:给你一个迷宫,里面有 ‘S’起点,‘A’标记,‘#’墙壁,‘ ’空地。求从S出发,经过所有A所需要的最短路。你有一个特殊能力,当走到S或A时可以分身出任意多个人一起走。计算路程时就是所有人的总路程之和。题解:想一下,是裸的最短路套上bfs。  先暴力bfs出各个点之间的距离,存边  然后kruskal...

Opencv-Python(11)-车牌识别-实例源码_china_plate_number.xml-程序员宅基地

文章浏览阅读870次。应用:在视频中扫描车牌号,按下s键,可保存车牌到文件夹中。demoimport cv2nPlateCascade = cv2.CascadeClassifier("Resources/haarcascades/haarcascade_russian_plate_number.xml")img = cv2.imread("Resources/carNumber.jpg")minArea = 100color = (255,0,255)count=0while True: #视频.._china_plate_number.xml

DevExpress之ChartControl用法-程序员宅基地

文章浏览阅读446次。DevExpress中的ChartControl顾名思义就是数据基于图表展示,其关键在于Series上的处理。using System;using System.Drawing;using DevExpress.XtraCharts;namespace DevExpressUtilHelpV3{public static class ChartToolV3..._devexpress.xtracharts.chartcontrol刻度小数

idea 2016.1 激活码-程序员宅基地

文章浏览阅读1.2k次。服务器激活方式,地址http://idea.iteblog.com/key.php

论文源代码_论文写源代码-程序员宅基地

文章浏览阅读1.1k次。写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友。 1.Github 强烈推荐这个网站: https://github.com/ 具体界面如下图所示,搜索框输入关键词,便会出来结果,然后点击相应部分即可 2.Catalyzex 首先给出这个网站的网址: https://www.catalyzex.com/paper/arxiv:1701.04099 具体界面如下图所示,左上角输入名字,便会出来结果,然后点击code部分即可 3.Papers with Cod_论文写源代码

随便推点

Three.js教程:构建矩形平面几何体_three 矩形-程序员宅基地

文章浏览阅读332次。一个矩形平面,可以至少通过两个三角形拼接而成。而且两个三角形有两个顶点的坐标是重合的。注意三角形的正反面问题:保证矩形平面两个三角形的正面是一样的,也就是从一个方向观察,两个三角形都是逆时针或顺时针。0, 0, 0, //顶点1坐标80, 0, 0, //顶点2坐标80, 80, 0, //顶点3坐标0, 0, 0, //顶点4坐标 和顶点1位置相同80, 80, 0, //顶点5坐标 和顶点3位置相同0, 80, 0, //顶点6坐标]);_three 矩形

Spring JTA multiple resource transactions in Tomcat with Atomikos example--转载-程序员宅基地

文章浏览阅读109次。原文地址:http://www.javacodegeeks.com/2013/07/spring-jta-multiple-resource-transactions-in-tomcat-with-atomikos-example.htmlIn this tutorial we shall show you how to implement JTA multiple resource..._atomikos tomcat lookup

分块详解-程序员宅基地

文章浏览阅读180次。hzwer的9题https://loj.ac/problem/6277https://loj.ac/problem/6278https://loj.ac/problem/6279https://loj.ac/problem/6280https://loj.ac/problem/6281https://loj.ac/problem/6282https://loj.ac/pro..._ai5412a

vscode写vue模板--代码片段-程序员宅基地

文章浏览阅读114次。Ctrl+Shift+P打开命令输入 snippet (打开用户代码片段)在输入vue(选择代码片段的语言)如果搜索不到,安装一个插件 vueHelper如果搜索到复制粘贴以下代码{ "Print to console": { "prefix": "vue", "body": [ "<template>"..._vetur代码片段template

Windows下VsCode的简单配置-程序员宅基地

文章浏览阅读227次。1. 安装插件2. 配置终端软件安装cmder添加cmder按下ctrl+shift+p键,输入setting,打开user settings如图:将"terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\cmd.exe",注释掉,换成:"terminal.integrated.shell.w..._vscode terminal.integrated.env.windows

图片滑块验证码的解决-程序员宅基地

文章浏览阅读775次。https://blog.csdn.net/w18756901575/article/details/78615275其他的不多说,直奔主题:本次是以微信注册中所遇到滑块验证码为例,主要的目的就是让脚本实现自动识别阴影部分的位置,然后计算出距离拖动滑块完成验证操作 想要从1处滑动到2处,就需要知道1处和2处的中间点的x轴坐标位置,1点的坐标基本是固定的,2点的坐标是不..._图片滑动验证码抓不到验证确认