精华内容
下载资源
问答
  •  正如我们在上一节的教程中所看到的,有很多可供选择的方式把参数的值传递到OjbectDataSource的方法里。假如参数值是采用硬编码方式,来源页面上的一个Web控件,又或者其他可被数据源Parameter对象读取的源,那么...
  • 浅谈参数传递(值传递和引用传递) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,...值传递相当拷贝,引用传递的值会变化 //值传递 void fan1(int a){ a++ } //引用传递 voi...

    浅谈参数传递(值传递和引用传递)

    博客说明

    文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!

    说明

    突然学到这里的是否,发现这个概念自己以前经常看到但是不理解,现在的恍然大悟,所以有必要记录下来

    值传递和引用传递

    值传递相当于拷贝,引用传递的值会变化

    //值传递
    void fan1(int a){
    	a++
    }
    
    //引用传递
    void fan2(int& a){
    	a++
    }
    

    一般的语言都是引用传递(Java,Python)

    值传递(Go)

    感谢

    万能的网络

    以及勤劳的自己

    展开全文
  • 注:博客中内容主要来自《狄泰软件学院》,博客仅当私人笔记使用。 测试环境:Ubuntu 10.10 ...3) 函数参数的顺序依赖编译器的实现 下面的程序输出什么?为什么? int k = 1; printf("%d...

    注:博客中内容主要来自《狄泰软件学院》,博客仅当私人笔记使用。

    测试环境:Ubuntu 10.10

    GCC版本:4.4.5

     

    一、函数参数

    1) 函数参数在本质上与局部变量相同在栈上分配空间

    2) 函数参数的初始值是函数调用时的实参值

    3) 函数参数的求值顺序依赖于编译器的实现

               下面的程序输出什么?为什么?

    int k = 1;
    printf("%d, %d\n",k++,k++); 

     

    实例分析
    函数参数的求值顺序
    44-1.c
    #include <stdio.h>
    
    int func(int i, int j)
    {
        printf("%d, %d\n", i, j);
        
        return 0;
    }
    
    int main()
    {
        int k = 1;
        
        func(k++, k++);    //先求后边的k++,再求第一个k++。进入函数之前先给形参赋值
        
        printf("%d\n", k);
        
        return 0;
    }
    
    

    操作:

    1) 编译:gcc 44-1.c -o 44-1.out,打印结果:

    i=2,j=1
    3

    分析:形参执行顺序待定,依赖于编译器实现

     

    二、程序中的顺序点

    1) 程序中存在一定的顺序点

    2) 顺序点指的是执行过程中修改变量值的最晚时刻

    3) 在程序到达顺序点的时候,之前所做的一切操作必须完成

     

    三、C语言中的顺序点

    1) 每个完整表达式结束时,即分号处

    2) &&, ||, ?:,以及逗号表达式的每个参数计算之后

    3) 函数调用时所有实参求值完成后(进入函数体之前)

                下面的程序运行结束后k的值为多少?

    int k = 2;
    k = k++ + k++;
    编程实验
    程序中的顺序点
    44-2.c
    #include <stdio.h>
    
    int main()
    {
        int k = 2;
        int a = 1;
        
        k = k++ + k++;    //2++ + 2++ = 4,遇到;表示要执行完所有操作,即在结果基础上(4)执行两次++
        
        printf("k = %d\n", k);
        
        if( a-- && a )    //先执行a--,因为--后,a=0为假,结果printf没有打印
        {
            printf("a = %d\n", a);
        }
        
        return 0;
    }
    

    操作:

    1)编译:gcc 44-2.c -o 44-2.out,打印结果:

    k = 6

     

    小结:

    1) 函数的参数在栈上分配空间

    2) 函数的实参并没有固定的计算次序

    3) 顺序点是C语言中变量修改的最晚时机

     

    意义:知道顺寻点,并不是利用这种依赖关系写代码,而是要了解背后危害,去杜绝这种设计。

    展开全文
  • 近日,美国放射物理师学会AAPM发布了一份出版物,来自梅奥...在传统CT扫描中,不同元素组成材料可以具有相同CT,这取决每种材料质量密度和检测到x射线束能量。因此,区分不同组织类型和对比剂是非...
    近日,美国放射物理师学会AAPM发布了一份出版物,来自梅奥诊所、德克萨斯大学安德森癌症中心、德克萨斯大学西南医学中心、斯坦福大学以及西门子医疗、飞利浦医疗、通用电气医疗、佳能医疗的专家详细介绍了双能量的实现方法与临床应用,今天我们一块学习一下。

    在传统CT扫描中,不同元素组成的材料可以具有相同的CT值,这取决于每种材料的质量密度和检测到的x射线束的能量。因此,区分不同的组织类型和对比剂是非常困难的。在多能CT中,在第二、第三或更多能量获得一个或多个附加衰减测量。这样至少可以区分两种材料。双能量CT是一种古老而又崭新的技术,早在上世纪七十年代就有对于双能量CT成像的探索(更多内容可以参见:能谱纯化技术的基本原理与临床应用)。目前,商用双能量CT技术的方法有很多种,大致可以分为两类,一类是基于探测器端的方法,一类是基于球管端的方法。

    基于探测器端的双能量实现方法

    01

    双层探测器

    使用一个x射线源和两层能量积分闪烁探测器,可以获得两个不同光谱的数据集。每一层的厚度和材料决定了记录的低能量和高能量数据集的能量分离和相对噪声。在商用系统(IQon、飞利浦医疗)中,x射线管产生多色光束,其最大光子能量等于用户选择的峰值管电压。产生的x射线光谱中的低能光子被顶部的低密度石榴石闪烁层选择性吸收,而高能光子通过底部的G2O2层并被吸收。

    通过将低能量和高能量数据相加,并使用迭代重建或滤波反投影等标准技术进行重建,也可以从每次扫描中获得常规CT数据。得到的图像是传统的单能CT图像,与使用单球管和单管电压但配备单层探测器的传统CT扫描仪获得的图像相匹配。理想的对齐低能量和高能量数据也可从120或140kV执行的每次扫描中获得。光谱数据的固有配准允许投影区域分解。使用专用的能谱算法进行基对重建。使用基础图像进行材料特性和分解,以创建各种光谱图像类型。

    f164ea57bb934e1fe1c5347c93481c27.png

    双层探测器数据处理流程示意图

    优势

    双层探测器技术的优点之一是没有对双能量扫描的特殊要求(即特殊协议)。常规扫描协议可以“按原样”使用,无需增加剂量或改变工作流程。从每次120和140kV的扫描中都可以获得常规和双能数据,不必预先确定双能图像的需要。换言之,因为光谱采集协议与传统成像协议没有区别;双能量数据可以从任何常规CT扫描中进行回顾性检索。这尤其有助于通过次优对比度增强挽救检查,减少传统图像上模糊感兴趣区域的伪影,改善病变可视化和病变特征,包括偶然发现的病变。一项针对118名患者的研究表明,光谱信息在大约80%的扫描中提供了额外的临床价值,尽管如果需要预先选择的话只有20%的扫描是基于临床病史和检查指示的双能量采集。探测器级的能量分离产生空间和时间对齐的低能量和高能量数据集,允许投影空间分解。投影空间分解的一个好处是线束硬化伪影的内在减少。在头部成像、心肌灌注成像、冠状动脉支架成像和髋关节假体成像中,与传统图像相比,由双层光谱CT数据生成的虚拟单能图像上的线束硬化伪影减少。光谱数据的这种配准还允许识别和去除基础材料原始数据集中的反向噪声,有助于在保留信号的同时抑制噪声。使用双层技术,与由相同数据生成的传统图像相比,虚拟单能图像中的噪声降低了。此外,有几个小组报告了在评估的单能范围内(40 keV到200 keV)几乎平坦的噪声,并且随着keV的降低,CNR增加。当结合低能量和高能量信息来创建光谱图像时,数据集的空间和时间配准也为心脏等运动解剖学提供了优势。双层探测器的设计还允许在完全相同的对比度增强阶段获取双能量数据。双层探测器技术的另一个优点是,它不限制与视野、机架旋转时间或使用剂量节省工具(如管电流调制)相关的数据采集。此外,每个探测器层的厚度和材料选择提供了低能量和高能量数据,并在典型患者尺寸范围内提供匹配的噪声水平。该准则通常用于平衡两个数据集之间的噪声水平,因为它提供了一种对多个应用相对稳健的合理方法。此外,双层解决方案不存在其他问题,例如在双源方法中发现的患者诱导的交叉散射,以及由于在kV切换方法中需要视图插值而导致的空间分辨率降低。

    限制

    采用单x射线源的双层探测器技术对双能CT有一定的局限性。由于光谱数据集的能量分离受到固定探测器设计的限制,只能使用在120或140kV峰值管电位下进行的扫描进行光谱分析。常规扫描可在80或100kV电压下进行,但只有常规数据集可用于重建。使用双层探测器的光谱分离比使用两种不同管电位设置和滤除其中一束光的方法更差,原则上,这将要求患者获得更高的辐射剂量,以实现光谱图像中的等效对比度与噪声比。通过在投影空间中消除材料分解过程中的反向噪声,这在一定程度上得到了缓解。双层探测器的另一个限制是电子噪声加倍,因为每次读取都基于两个数据通道电子器件的探测器设计和工作参数有助于将电子噪声的影响降到最低。电子噪声贡献通常保持在量子噪声贡献以下,因此量子噪声贡献通常定义了低剂量扫描的极限。最后,层之间可以发生探测器串扰,由此一个探测器像素中的光子相互作用导致散射光子在不同像素中相互作用。

    02

    光子计数CT

    当今医学CT系统中使用的固体闪烁探测器将x光转换为可见光,可见光由与闪烁体耦合的光电二极管检测。每个吸收的x射线量子产生的光强度,以及因此每个吸收的x射线量子产生的电信号,与x射线能量E成正比。能量积分检测器中的信号Sint是来自所有吸收的x射线通量N(E)的信号在所有能量E上的积分,权重因子与E成正比。固体闪烁探测器不提供能量分辨信号。因此,携带物体(特别是含碘组织)大部分低对比度信息的低能x射线量子比集成信号中的高能量子的重量小。基于半导体的光子计数探测器,如碲化镉(CdTe)或碲化镉锌(CZT)直接将x射线转换成电信号吸收的x射线产生电子-空穴对,在探测器顶部和底部的阴极和像素化阳极电极之间的强电场(电压~106 V/m)中分离。移动电子产生短电压脉冲,脉冲高度与x射线能量E近似成正比,一旦超过给定的能量阈值,就单独计算。在基本工作模式下,仅使用一个能量阈值E1,该阈值能量以上的所有x射线量子都以相同的权重计数,从而产生检测器信号。低能量x射线量子信号的低加权不存在可以提高结果图像的对比度噪声比(CNR),特别是在使用碘化造影剂的CT扫描中。由于只检测到高于能量阈值的信号,因此低于阈值的低水平电子噪声不会影响光子计数探测器的计数率。这是与传统能量积分探测器的一个主要区别,它可以减少图像噪声,降低肥胖患者或极低辐射剂量扫描的剂量。不同的能量阈值允许区分光子能量。光子计数探测器可以同时提供具有不同低能量阈值E1、E2的CT数据,用于光谱分辨测量。在物理上,阈值是通过输入脉冲高度比较器电路的不同电压来实现的。从探测器获得的脉冲高度几乎与探测到的x射线光子的能量成正比。到目前为止,在原型设置中使用了多达六个不同的阈值。

    8818d9ad53b48887fe826c773f127ca1.png

    光子技术探测器原理示意图

    通过为数据读出实现两个或多个能量阈值,光子计数探测器可以使用标准CT扫描仪提供光谱(双能或多能)数据,而无需修改探测器类型光谱信息可用于任何CT扫描,在选择扫描参数(如管电压、机架旋转时间或螺距)或使用解剖管电流调制以使辐射剂量适应患者解剖结构方面没有限制。在不同能量水平上对CT数据进行时空比对,有利于心脏等运动器官的扫描,并且可以使用基于投影的材料分解或虚拟单能算法。没有额外的散射辐射需要注意。利用光子计数探测器,常规获取光谱数据,将最低能量阈值的图像用于标准诊断(类似于今天的单能量CT图像),如果临床需要,可回顾性地获得光谱信息。在两个以上能量仓的情况下,k边缘成像可以应用于双能CT之外的先进材料分解,例如在同一扫描中分离碘和钆造影剂,分离碘、钆和铋,或分离碘和金纳米粒子。迄今为止,光子计数探测器仅在研究系统中可用,从技术和临床角度对其进行了广泛的评估。

    基于球管端的双能量实现方法

    01

    单源KV旋转切换

    双能量成像的宽体积、两个连续采集方法的目标是利用单轴旋转的广域覆盖和宽体探测器,例如2009年东芝医疗系统推出的16cm Aquilion ONE探测器。在标准成像应用中,16厘米探测器在一次0.275秒的机架旋转中提供整个器官或感兴趣区域的各向同性体积覆盖。对于双能量应用,使用两个机架旋转的全器官覆盖,每个旋转的管电位值不同,允许投影空间对齐和基于投影数据的材料分解。当需要更长的扫描长度时,也可以使用以相同轨迹执行的两次螺旋扫描。在管电位切换时,通过调整管电流值,实现了对低能量和高能量采集噪声水平的独立控制。

    优势

    宽体探测器的主要优点是,在两个机架旋转之间没有患者运动的情况下,两个连续旋转的双能量CT方法是原始数据域投影的理想对齐。此外,这种方法允许用户利用自动曝光控制(AEC)系统根据患者的衰减来调整管电流。这进一步允许在低能量和高能量数据采集之间匹配图像噪声级。最后,该方法在采集过程中具有稳定的管电压值。

    限制

    双能量两次连续采集方法的主要限制是时间对准,因为在两次采集之间从一个管电位切换到另一个管电位可能需要500毫秒。这限制了在采集之间有明显移动的患者(如在心脏应用中)或对比剂浓度快速变化的组织的时间分辨率。

    02

    单源KV瞬时切换

    在低和高kV设置之间来回的电压通常被称为快速千伏切换。管电压的切换使得能够从两个在时间和空间上紧密排列的不同能量数据集中获取数据。GE Healthcare于2008年推出了第一款用于快速kV切换的常规临床成像的商用扫描(Discovery CT750 HD)。在快速kV切换中,获取的投影数据集是交错的。由于低能量和高能量投影的时间偏移,采用数据插值实现低能量和高能量投影之间的数据一致性,从而实现投影空间的物质分解。为了保持空间分辨率并减少视图混淆伪影,与单管电压扫描相比,每台机架旋转采集的视图数增加了一倍以上。在一个典型的临床转速下,在80kV到140kV之间的一小部分毫秒内,管电压以及因此而产生的输出x射线谱发生了变化。

    当每台机架旋转采集2000多个视图时,相邻80和140kV投影之间的角度差小于0.18度。这确保了用不同管电位采集的相邻视图对应于在几乎相同方向观察的相同患者解剖结构。相邻视图也会在几毫秒内收集,以确保由于患者运动而使患者的解剖结构发生最小程度的变化。这两个特性允许在投影空间中进行材料分解。

    原始的交错80和140kV投影分为两个投影:80kV和140千kV。进行投影空间材料分解,生成水(碘)和碘(水)密度投影。(在GE系统中,列出的第一个物料是显示的基础物料,括号中列出的物料是用于两个物料分解的其他基础物料)。然后对这些投影进行层析重建,生成水(碘)和碘(水)密度图像。其他图像,例如虚拟单能图像、不同的基材料对或有效的原子序数图像,可以从水和碘对中计算出来。

    在很短的时间内,x射线管电压(60kV)的巨大变化对CT系统提出了重大的技术要求。首先,为了保持足够的能量分离,低和高管电位设置之间的转换时间需要比kV切换周期短得多。缓慢的上升和下降时间会导致两个管电位之间的信号污染,并导致两组投影之间的能量差变小。一个特别设计的x射线管和发生器被用来减轻光谱分离的减少。这一点很重要,因为充分的能量分离对于实现良好的材料分解和定量至关重要。

    随着快速管电位转换时间的增加,探测器的时间响应也需要加快。所有固体闪烁体都具有信号衰减特性。如果衰减速度很慢,先前投影产生的信号将污染当前投影。这种污染也会导致能量分离的退化。一种特殊设计的闪烁材料用于减轻此影响。

    快速kV切换技术面临的第三个技术挑战是x射线磁通管理。低能光子比高能光子对物体的衰减更大。然而,为了获得最佳的噪声性能,低能量和高能量测量中的噪声需要相对平衡,因为材料分解过程依赖于两个测量作为输入。为了实现这一点,快速kV切换系统采用了一种非对称采样方案,其中低能量投影的信号积分时间比高能量投影的信号积分时间长。

    需要注意的是,管电压切换技术是在20世纪80年代商业化实现的,由于当时现有技术的局限性,用于低管电压数据采集的管电流不能以足够快的速度增加以获得足够低的噪声,这限制了该系统,主要用于骨密度测定。

    528b90f90d592af8655f8d650ef17d18.png

    kV快速切换原理示意图

    优势

    由于投影空间材料分解被用于快速kV切换,因此可以显著减少线束硬化引起的伪影,这对于精确的双能材料量化具有重要意义。此外,快速千伏切换技术导致几乎同时采集低能量和高能量投影,确保运动相关问题最小化。由于这两组投影都是用常规CT成像用的同一个探测器获得的,因此整个50厘米的视野被覆盖。最后,能够根据每个能量投影的积分时间独立调整测量的低能量和高能量通量,从而能够通过考虑两个管电压之间的患者衰减特性的差异来优化系统噪声性能。

    限制

    在目前商业上实现的快速kV切换中,x射线管电流在数据采集过程中不能动态变化。因此,管电流调制是不可能的,这会降低检查的剂量效率,并限制系统适应患者衰减增加区域的能力。这主要是由于现有系统的硬件限制。

    低、高管电压设置之间的有限切换时间和探测器的有限时间响应都会在低、高能量测量之间引入信号污染,降低了材料量化的精度,增加了基于材料分解的图像噪声。这种污染随着机架旋转时间的减少而恶化,因此系统软件目前防止使用机架旋转时间小于约500 ms,这可能会限制心脏检查的质量。

    另外,由于用一个x射线管收集所有的投影数据,而且获得低能量和高能量投影之间的时间很短,在实际应用中很难通过在高能束中加入预过滤来进一步优化光谱分离,因为它需要一个系统以极高的速率将滤波器移入和移出光束,并且以与千伏切换完全同步的方式。因此,kV开关的能量分离比双源的能量分离更差。

    03

    射束滤过技术

    1980年,描述了从标准CT采集中获取双能信息的简单技术。作者提出用不同的方法对x射线扇形光束的两半进行滤波,并用360°扫描获得两个光谱的完整投影数据。

    最近,这种方法被重新引入商业CT扫描仪。然而,x射线束现在在纵向上分裂,而不是在扇形光束方向上分裂。这是可能的,因为多排探测器的几何结构,这在1980年是不可用的。球管准直器壳体中的两个不同的预滤器用于分离光束。扫描方向的多排探测器中,有一半的探测器用0.6毫米锡过滤的x射线束;与标准的120kV光谱相比,该预过滤光谱的平均能量增加。探测器的另一半可以看到用金滤光片过滤的x射线束;由于金的K边界在80.7keV,相对于传统的120kV光谱,该光谱的平均能量降低。预滤波器的总衰减被调整以平衡光束的低能量部分和高能部分的辐射剂量。

    CT系统可在螺旋扫描模式下运行,机架旋转时间最快为0.28秒,螺距高达0.5(指探测器的全z宽度)。通过这种方式,沿着z轴的每一半探测器获得一个完整的螺旋数据集,并且低能量和高能量图像都可以在任意z位置重建,作为基于图像的材料分解技术的输入。

    优势

    射束滤过技术使双能扫描与标准CT系统,只需修改球管准直器无需特殊球管或高压发生器要求。双能信息是在50厘米直径的扫描视野内获得的,通过解剖管电流调制可以优化病人的辐射剂量。混合图像(模拟标准120kV图像的低能量和高能量图像的加权平均值)数据集是采集的主要输出。这使得常规双能量CT扫描成为可能,同时提供与传统成像协议相似的数据。与单能CT相比,混合图像在辐射剂量为45%时出现了相似的图像噪声。

    限制

    采用束流过滤技术的光谱分离效果不如采用两种不同的管电压设置。此外,需要一个强大的x射线管,因为预过滤吸收了x射线通量的很大一部分,反过来又限制了非肥胖患者使用这项技术。0.5的最大螺距在一定程度上限制了最大螺距覆盖速度,使用0.28或0.3s的旋转时间通常可以弥补这一限制。最后,低能谱中的散射光子可以被检测并计算为来自高能谱,反之亦然。

    04

    双源双能

    双源CT(DSCT)是具有两个测量系统的CT系统,即两个x射线管和两个相应的探测器,在机架内以大约90°的角度偏移。两个测量系统同时在患者的相同解剖水平(相同的z位置)获取扫描数据。双能数据可以通过在不同的管电位设置下同时操作两个x射线管来获得,例如80kV和140kV。

    2006年,第一台DSCT投入商业应用(SOMATOM Definition)。它的两个采集系统A和B安装在旋转机架上,角度偏移量正好为90°,对于第二代和第三代DSCT,角度偏移量改为95°。探测器A覆盖50cm直径的全扫描视野,而探测器B由于机架空间限制,仅限于26cm(第一代)、33cm(第二代)或35.4cm(第三代)的较小视野。

    3cc1b5a9df23c3c8c689aff28d21b089.png

    双源示意图

    优势

    利用DSCT系统,两种测量系统的扫描参数(如管电流和电压)都可以单独调整,从而在低能量和高能量扫描之间实现辐射剂量均衡分布。有多种常规扫描协议可供选择,扫描参数的选择没有限制,如机架旋转时间。使用解剖管电流调制允许根据患者的解剖调整辐射剂量。混合图像(低能量和高能量图像的加权平均值)是常规可用的,允许在常规临床实践中进行双能量CT扫描,类似于常规成像协议,需要时提供双能量信息。

    DSCT系统还可以通过在高能束中引入额外的预过滤来优化光谱分离,例如,通过在需要时可以移入束中并移出用于非双能应用的滤波器。双能CT图像质量和定量精度随能谱分离程度的提高而提高。差的能量分离导致基材料分解中的图像噪声增加,必须通过增加的辐射剂量进行补偿。第二代DSCT配备了0.4 mm的锡(Sn)滤波器,以将140kV频谱的平均能量从86keV转移到97keV(20cm水模后)。80kV频谱的平均能量为60keV。第三代DSCT提供了一个150kV的x射线管电压和更厚的锡预过滤(0.6mm),以将150kV光谱的平均能量转移到107keV。作为额外的好处,Tin滤波器缩小了高能量谱,从而产生更好的剂量效率和更少的线束硬化伪影。

    衡量双能CT采集技术在能量分离和材料区分能力方面性能的一个相关参数是非水材料的CT值比(CTR),在一些出版物中也称为双能比(DER)。在实验工作中经常使用的材料的CTR的一个定义是在低能谱下的CT值(单位:HU)除以在高能谱下的CT值(单位:HU)。这里,水(CT值~0HU)的CTR被定义为1,因为它的CT数不应该随着管电位的变化而有意义地改变。碘的CTR是对比增强CT扫描中常用的物质分解基础材料,从使用80kV/140kV x射线管电压组合的~2增加到使用80kV/150千kV和0.6mm锡预过滤x射线管电压组合的~3.4(使用20厘米水模测量)。CTR值越大,基材料微分的条件方程越好,材料特定图像中的图像噪声越小。

    59c1af435066e97676f467715be510d3.png

    使用能谱纯化技术的双源CT的能谱分离程度最佳

    限制

    DSCT的双能量评估仅限于较小探测器B的较小中心扫描视野。然而,在整个50cm扫描视野内获得混合图像。

    基于投影的双能量算法不能与DSCT一起使用,因为低能量和高能量投影不是在同一z位置同时获得的。因此,双能量算法是基于图像的。虽然基于投影的算法在理论上具有优势,但基于图像的方法在临床任务中实际上是等价的。一个先决条件是薄吸收模型的有效性。以水和碘为基础材料,碘在任何测量射线路径上的最大x射线衰减必须足够小,以假定对总衰减的线性贡献。这适用于碘在水中的整体衰减高达~5000 HU·cm的样品,并且仅在存在极高局部碘浓度的临床情况下才违反,例如在CT肾或心脏研究中。作为第二个先决条件,水的CT值和小碘样品的CT值应独立于它们在扫描对象内的位置。为了创造这些条件,DSCT扫描仪配备了优化的蝶形滤波器,以获得足够的光束硬化。因此,患者必须在扫描视野内居中。

    最后,必须仔细校正交叉散射辐射,即源于A球管并由B探测器检测到的散射辐射,反之亦然,以避免因杯状伪影或条纹伪影而导致CT值失真。这可以通过测量交叉散射辐射或基于模型的方法来实现。

    小结

    双能和多能CT技术可以区分不同有效原子序数的物质,使新的临床相关CT应用成为可能。从2006年到2009年,应用主要局限于CT血管造影中的自动骨和斑块去除、对比增强扫描中碘信号的去除、灌注血容量的单相成像以及具有特定元素成分的组织的识别。从那时起,已经开发出更多的应用,并进行了前瞻性临床试验,以评估这些技术的临床疗效。

    其结果是,双能和多能CT正逐渐成为临床影像学的主流。双能CT在20世纪80年代可能已经从临床上消失,但随着自那时以来发生的巨大技术进步,现代CT技术现在能够充分利用Godfrey Hounsfield在1973年设想的基础物理学和临床前景。

    翻译整理自:Report No. 291 - Principles and Applications of Multi-energy CT Report of AAPM Task Group 291 (2020)。章所述内容为原作者观点,仅用于专业人士交流目的,不作为商业用途。

    c4a2f410514b296791ea44f1746a5be9.gif1425c25877e7f98d6f7a6a08d997b7ab.png

    展开全文
  • C#——传值参数(1)

    2019-09-28 15:36:27
    一个值参数相当一个局部变量,只是它的初始值来自为该形参传递的实参。对值参数的修改不影响为该形参传递的实参。 值参数可以是可选的,通过指定默认值可以省略对应的实参。 传值参数--值类型 ...

    这次与大家一起学习C#中的值参数

    传值参数(也叫值参数)

    值参数 (value parameter)

    什么是值参数?

    这是从《C#语言规范5.0》中找到的一段定义:

    用于传递输入参数。一个值参数相当于一个局部变量,只是它的初始值来自为该形参传递的实参。对值参数的修改不影响为该形参传递的实参。

    值参数可以是可选的,通过指定默认值可以省略对应的实参。

     

    传值参数--值类型

    注意:1.值参数创建变量的副本 2.对值参数的改变不会影响变量的值

    看个例子:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace BlogUse
     8 {
     9     class Program
    10     {
    11         static void Main(string[] args)
    12         {
    13             Calculator c = new Calculator();
    14             int y = 1024;
    15             c.AddOne(y);
    16             Console.WriteLine(y);
    17         }
    18     }
    19    
    20     //准备一个能进行计算的Calculator工具
    21     class Calculator
    22     {
    23         public void AddOne(int x) //这里的x就是传值参数
    24         {  
    25             x = x + 1;
    26             Console.WriteLine(x);
    27         }
    28     }
    29 }

    这是运行结果

    注意到了吗我们明明对变量y调用了AddOne方法使其存储的值加1,但是为什么y还是1024呢?

    这就是因为方法内的参数是传进来的变量的副本,我们在方法体内修改的只是y传进来的一个副本,而这并不影响方法外变量y存储的值

    ---------------------------------------------------------------------------------------------------------------------------------------

    To be Continued!

    下篇与大家一起学习  传值参数--引用类型,创建新对象

    ---------------------------------------------------------------------------------------------------------------------------------------

    希望广大网友指出问题所在,指出我哪里理解错了,共同交流,共同进步!

    转载于:https://www.cnblogs.com/GeekDragon/p/6239579.html

    展开全文
  • 此内容来自于沙行勉《计算机科学导论-以python为舟》函数调用基本概念:程序语言中函数与高中数学中函数相似。高中函数,假设要实现z+x*y²这个计算。对于乘法计算,定义一个函数f(x,y)=x*y²,他有两个参数...
  • 如果这里使用指针仅仅是因为想要提高效率,降低内存使用,我觉得没必要,因为Demo这个结构体实例化后,只要每次结构体传参数的时候都用指针就可以了,不会增加内存,因为传递的只是一个指针的空间,并没有整个结构体一起...
  • 什么叫pure function(纯函数)

    万次阅读 2015-03-03 10:55:44
    在Knockout中,用到了pureComputer(),其原理来自于纯函数(pure function)。那么,什么叫纯函数呢? 纯函数 (来自:http://en.wikipedia.org/wiki/Pure_function)  在计算机编程中,假如满足下面这两个...
  • 深入理解CNN细节

    2018-04-03 14:36:30
    人们对图像信息的摄取通常不是来自于像素色的高低,而是来自于像素之间的相对色差。零均值化并没有消除像素之间的相对差异(交流信息),仅仅是去掉了直流信息的影响。数据有过大的均值也可能导致参数的梯度过大。...
  • 你必须知道495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    2.14 为什么sizeof返回的值大于结构大小的期望值,是不是尾部有填充? 2.15 如何确定域在结构中的字节偏移量? 2.16 怎样在运行时用名字访问结构中的域? 2.17 C语言中有和Pascal的with等价的语句吗? 2.18...
  • 而且每个计算得出P会有差别,有时候还特别大,直接影响对检验结果判定,它们之间有什么区别或差异呢?实际应用中该如何科学选取合适的参数呢? 我之前写过一个关于t检验博文,可能有一些帮助。...
  •  系统中交换分区的大小并不取决物理内存的量,而是取决系统中内存的负荷,所以在安装系统时要根据具体的业务来设置SWAP的值。其实虚拟内存并不是等到物理内存用尽了才使用的,是否尽量的使用或不使用swap,在...
  • 使用这些工具将来自多个传感器流数据融合到自动驾驶汽车单个状态估计中 重要性 动机 我在哪里? 我移动多快? 为什么很难:传感器和测量不完美 定义 本地化:确定车辆位置和方向过程 如何? 例如状态估计 ...
  • 使用pandas做数据处理第一步就是读取数据,数据源可以来自于各种地方,csv文件便是其中之一。而读取csv文件,pandas也提供了非常强力支持,参数有四五十个。这些参数中,有很容易被忽略,但是在实际工作中却...
  • 应用场景 假如有这样一个场景:系统每秒钟都会收到大量事件,每个事件又...最近,来自于 Premium Minds 软件架构师 André Camilo 在博客上发表了一篇文章,介绍了他们是 如何使用Akka解决这一棘手问题 。
  • 假如有这样一个场景:系统每秒钟都会收到大量事件,每个事件又包含很多参数,用户不仅需要准实时地还需要定期地判断每一种事件、事件每一种参数值的组合是否超过了系统设定阈值。面对这一场景,用户应该采用...
  • 9.1 来自C语言中静态成员 157 9.1.1 函数内部静态变量 157 9.1.2 控制连接 160 9.1.3 其他存储类型指定符 161 9.2 名字空间 161 9.2.1 产生一个名字空间 162 9.2.2 使用名字空间 163 9.3 C++中...
  • 2.14 为什么sizeof返回的值大于结构大小的期望值,是不是尾部有填充? 28 2.15 如何确定域在结构中的字节偏移量? 28 2.16 怎样在运行时用名字访问结构中的域? 29 2.17 C语言中有和Pascal的with等价的语句吗...
  • 《你必须知道495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    2.14 为什么sizeof返回的值大于结构大小的期望值,是不是尾部有填充? 28 2.15 如何确定域在结构中的字节偏移量? 28 2.16 怎样在运行时用名字访问结构中的域? 29 2.17 C语言中有和Pascal的with等价的语句吗...
  • [第二小节:侧重CALL的寻找及参数的分析,简单数组分析以及简单挂机流程] 022 -第二个程序人物属性分析 课程内容: 用自定义结构遍历背包结构 023 -分析程序发包流程 课程内容: 分析程序的发包模式,以及他的过程....

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 232
精华内容 92
关键字:

参数的值来自于什么