一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于激光扫描显微镜的基于散斑的图像畸变校正的制作方法

2021-11-22 12:40:00 来源:中国专利 TAG:

用于激光扫描显微镜的基于散斑的图像畸变校正
相关申请的交叉引用
1.本技术基于2019年1月28日提交的美国临时专利申请no.62/797,548,要求其权益并要求其优先权,该申请的全部内容出于所有目的通过引用整体并入本文。关于联邦资助研究的说明
2.本发明是在由美国国立卫生研究院(national institutes of health)授予的r01dk091923号政府资助下完成的。政府具有本发明中的某些权利。


背景技术:

3.非均匀激光扫描引起的图像畸变可能对某些激光扫描成像设备(诸如导管内窥镜和胶囊内窥镜)构成挑战。例如,与旋转或扫描相关的部件可能具有一定量的摩擦,并且该摩擦可能在旋转期间发生变化,例如,取决于成像设备的定向或扫描的波形。由于该摩擦通常未知且不可预测,因此由摩擦引起的畸变可能最终驻留在生成的图像数据中,例如,作为样本的几何畸变。


技术实现要素:

4.本文所公开的用于校正来自图像探针的图像的畸变的方法和系统,包括用于基于图像中出现的散斑或其他特征的形状和/或大小测量和校正图像畸变的技术。
5.在各种实施例中,方法和系统可以包括以下各项中的一者或多者:
6.1)基于散斑形状和/或大小来确定扫描速度;
7.2)基于图像的自协方差(例如,在图像已经被高通滤波器滤波之后)计算散斑形状和/或大小;
8.3)执行校准以调整成像探针的移动速率(例如,旋转或线性)与散斑形状和/或大小相比的非线性关系;或
9.4)通过使互相关最小化来对准多个畸变补偿中的每条线。
10.这些校正技术可以由具有旋转和/或线性扫描部件的任何成像设备采用。这些技术可以在软件中实现以测量畸变量,因此涵盖所公开的方法和系统的实施例的产品可以更简单、更具成本效益并且产生更稳健的结果。
11.在一个实施例中,本发明包括一种校正图像的畸变的方法,包括:由处理器,分析该图像的图像段以识别散斑伪影,从扫描成像设备获得该图像段;由该处理器,确定该散斑伪影的形状的纵横比;由该处理器,基于该纵横比确定用于该散斑伪影的该形状的校正因子;以及由该处理器,基于该校正因子来调整该图像段的尺寸。
12.在另一个实施例中,本发明包括一种用于校正图像的畸变的装置,包括:处理器;以及存储器,该存储器与具有存储在其上的一组指令的该处理器通信,当由该处理器执行指令时,使得该处理器:分析该图像的图像段以识别散斑伪影,从扫描成像设备获得该图像段;确定该散斑伪影的形状的纵横比;基于该纵横比确定用于该散斑伪影的该形状的校正因子;以及基于该校正因子来调整该图像段的维度。
13.在又一个实施例中,本发明包括一种畸变校正的方法,该方法包括:提供图像;将该图像划分为多个基本平行的条带,每个条带在第一方向上延伸;沿着基本垂直于该第一方向的第二方向将每个条带划分为多个子条带;分析该多个子条带中的每个子条带,以定位至少一个局部明亮特征;调整该每个子条带的至少一部分,以促使至少一个局部明亮特征朝向预定形状,以创建经校正的子条带;将该多个经校正的子条带重新组装成经校正的条带;以及将该多个经校正的条带重新组装成经校正的图像。
14.在又另一个实施例中,本发明包括一种用于校正图像的畸变的装置,包括:扫描成像设备,该扫描成像设备包括相干光源,该扫描成像设备被配置为获得样本的图像;处理器,该处理器与该扫描成像设备通信;以及存储器,该存储器与具有存储在其上的一组指令的该处理器通信,当由该处理器执行时,指令使得该处理器:分析该图像的图像段以识别散斑伪影;确定该散斑伪影的形状的纵横比;基于该纵横比确定用于该散斑伪影的该形状的校正因子;以及基于该校正因子来调整该图像段的维度。
附图说明
15.当结合以下附图考虑时,参考所公开主题的以下详细描述,可以更全面地理解所公开的主题的各种目标、特征和优点,在附图中相同的附图标记标识相同的要素。
16.图1示出了可以用于收集数据以与本文所公开的方法和系统的实施例一起使用的示例系统。
17.图2示出了根据本文所公开的实施例的畸变补偿之前(左面板,插图)和之后(右面板,插图)的散斑的示例;
18.图3表示在基于散斑纵横比(x轴)的基于图像的畸变估计与通过测量球形微珠的纵横比(y轴,其中轴上的数字是无单位比)所计算的实际畸变量之间找到的关系,其中,各种曲线拟合方法被示出为叠加在数据上,以作为用于校准使用散斑确定的畸变与图像中的实际畸变之间关系的过程的一部分;
19.图4表示如图3所示的分析的图形化结果,其中双平方曲线拟合程序的结果叠加在数据上;
20.图5表示如图3所示的分析的图形化结果,其中自定义曲线拟合程序的结果(基于图4的双平方曲线拟合程序的公式)叠加在数据上;
21.图6示出了如何调整一个子条带(顶部图像中的红色正方形区域)以形成经校正的子条带(底部图像);
22.图7描绘了如何通过在轴向扫描方向上应用补偿以使用本文所描述的畸变校正来创建更平滑、更规则的图像;
23.图8是描绘了本畸变校正算法的示例操作顺序的流程图;并且
24.图9示出了实现本文所公开的方法和系统的实施例的计算机系统。
25.图10示出了根据所公开的主题的一些实施例的用于校正图像畸变的过程的示例。
26.图11示出了根据所公开的主题的一些实施例的用于畸变校正的过程的示例。
具体实施方式
27.根据所公开的主题的一些实施例,提供了用于图像畸变校正的机制(该机制可以
包括系统、方法和介质)。
28.通过使用激光散斑光斑(该光斑预期基本上为圆形)以基于散斑偏离基本圆形形状的程度来确定图像中可能发生的任何畸变的量和定向,激光散斑(在一些情况下可以被视为不想要的伪影)可以用于有利于各种所公开的实施例。在各种实施例中,在所公开的程序中用于补偿畸变的特征和具有特定局部亮度的特征(诸如激光散斑),并且使用本文所公开的自动程序容易识别这些特征。虽然这些特征在本文中被称为激光散斑,但这些特征也可以有其他来源,但对于标识和校正图像畸变仍然有用。
29.在许多成像使用环境中(例如,使用照明激光的胶囊内窥镜),可能会出现不期望的畸变伪影。例如,在360
°
旋转胶囊内窥镜使用环境中,旋转照明激光器和/或图像接收传感器的电机可能会粘滞和/或滑动。在该情况下,由于旋转没有顺利完成,所记录的图像中可能发生畸变,因为来自扫描数据的图像重建是基于以下假设:所扫描的数据点是等间距的。也就是说,当成像探针旋转和/或平移通过试样时,收集一系列数据点。对于当探针同时地旋转和平移通过管腔样本时获得的螺旋扫描,基于探针以均匀速率旋转和平移的假设,通过将一系列数据点组装成二维或三维表示来生成样本的图像。但是,设备内的摩擦(例如,在各种可能的摩擦源中电机本身内的摩擦或旋转光纤与容纳光纤的护套之间的摩擦)可能导致粘滞或滑动,从而导致不均匀移动,进而导致从数据流生成的图像中的畸变。
30.因此,本畸变校正方法和系统利用来自照明激光器的自然产生的散斑来确定在扫描方向上发生了多少畸变,并相应地修改图像以解释和补偿该畸变。
31.图1示出了可以用于收集数据以与本文所公开的方法和系统的实施例一起使用的示例系统100。系统100包括导管110,导管110具有设置在其中的光学探针120,光学探针120包括位于波导140(例如,光纤)的端部的反射器130(例如,如图所示的球透镜或棱镜或镜)。光源150向波导140提供照明,波导140将光传输到光学探针120的反射器130,反射器130将光束122引导到样本160(例如,管腔组织,诸如血管或消化道的一部分)。光从样本160沿着路径返回到图像收集和处理系统170,图像收集和处理系统170收集和处理返回的光以形成图像或其他数据。光源150是相干光源(诸如激光器),其产生在本程序中用于进行图像校正的散斑伪影。
32.在数据收集期间,光学探针120可以旋转124和/或平移126,以便从样本160的完整圆周区域(由于旋转124)以及沿着样本160的轴向长度(由于平移126)收集数据。波导140可以在到达导管110之前在护套142内旋转124和/或平移126。为了促进光学探针120的旋转和平移,将旋转和平移设备180(设备180也可以包括旋转光学耦合器)附接到导管的近端。旋转和平移设备180可以包括用于平移光学探针120的线性电机以及用于旋转光学探针120的电机(例如,空心电机)。在一些实施例中,代替导管110,光学探针120可以被容纳在患者吞咽的胶囊设备中,特别是用于探测消化道。在各种实施例中,用于旋转反射器130的电机可以位于邻近反射器130的远端,尤其是在基于胶囊的实施例中。在各种实施例中,光学探针120可以以1

30hz、1

100hz、1

1000hz或1

10000hz的速率旋转,并可以以1

10mm/分钟的速率平移。
33.在各种实施例中,可能引起图像畸变的部件包括护套142或导管110内的波导140的粘滞或滑动和/或旋转和平移设备180内的部件(诸如旋转或线性/平移电机)的粘滞或滑动。在某些实施例中,本文所公开的校正程序可以在收集数据之后执行,例如在稍后的日期
通过处理先前存储的数据来执行。在其他实施例中,校正程序可以随着数据收集执行,例如,通过在收集数据时处理数据并存储数据的经校正的版本。在特定实施例中,可以以与数据收集基本相同的速率来执行校正程序,使得有效地实时进行处理。
34.图2示出了根据本文所公开的实施例的畸变补偿之前(左面板,插图)和之后(右面板,插图)的散斑的示例。在各种实施例中,可以首先将整个图像(在图2的左面板中以未校正的形式示出)划分成小条带。例如,在一些实施例中,可以将图像划分为具有第一维度(例如,图2中的水平维度)和第二、基本正交维度的条带,第一维度可以在300

500像素的范围内(并且在特定实施例中更具体地为400像素),第二、基本正交维度可以由原始图像的维度确定,例如,原始图像的“宽度”;图像的宽度(例如,图2中的垂直维度)可以对应于移动方向(例如,旋转),尤其可以对应于从管腔样本内旋转成像探针的完整旋转中收集的数据,其中图像是管状数据集的平坦表示。图2假设在内腔内朝下“螺旋”的360
°
旋转,例如,通过旋转成像探针同时线性地推进该探针产生的螺旋数据集,其中图2的每个面板的左侧与内腔的一端相对应。结果,每个“条带”表示来自成像设备的一次全圆周旋转的数据(参见图2的左面板中的垂直虚线,其示出了如何将图像划分为一组可能的图像条带)。在某些实施例中,图像中条带的数量和大小可以与条带的总高度相关,例如,使得每个图像被划分为大小基本相同的条带。
35.接下来,每个“条带”可以沿着其长度(例如,沿着图2中的垂直维度)细分为多个子条带或“帧”。例如,每个子条带可以基本是正方形的,例如,在300

500像素“长”的范围内,并且更具体地为400像素。条带中的子条带的数量和大小可以与条带的总长度有关,例如,使得每个条带被划分为大小基本相同的子条带。
36.在形成子条带后,分析每个子条带以获得照明度较大或较小的区域,例如,寻找“亮斑”或指示激光散斑区域的其他特征。在某些实施例中,使用图像滤波程序以自动方式识别散斑或“亮斑”。在一个特定实施例中,可以使用高通滤波方案,例如,通过获取原始图像和其中“噪声”已被减少或移除(例如,通过使用自适应滤波器(诸如维纳滤波器))的图像的经滤波的副本之间的差,其产生其中散斑或“亮斑”是唯一的特征或主要特征的结果图像。
37.一旦识别出子条带中的一个或多个“亮斑”或其他特征,就会分析那些“亮斑”或特征中的每一个的形状。在子条带或帧的大小已经被选择为使得其中最多包含一个特征(诸如散斑或“亮斑”(见下文))的某些实施例中,可以使用自动程序来识别此类特征的边界。例如,这可以通过基于特征的半高全宽(fwhm)对任何特征的x和/或y维度进行数学识别来实现。特征的水平(或x维度)和垂直(或y维度)维度的fwhm的比率(即纵横比)提供了畸变的指示(如果有的话)。例如,如果纵横比近似为1,则这指示几乎没有畸变或不存在畸变,而高于或低于1的纵横比指示图像中的畸变(例如,在给定方向上的拉伸或压缩)。
38.在一些实施例中,可以使用用于识别特征的纵横比的程序,该程序基于计算图像数据的自协方差(或如上文所讨论的已处理的图像数据的自协方差,其中散斑、“亮斑”或其他特征已经被强调)。然后,此程序可以返回两个正交方向的特征宽度值。例如,下面提供的代码中的specklesize_gray()(散斑大小_灰度())函数使用自协方差处理子条带,并返回两个正交方向的特征宽度值,这可以考虑给定的子条带内的多个散斑或其他特征。在子条带内有两个或多个此类特征的情况下,每个方向上的返回的特征宽度值考虑了全部特征的
每个各自方向上的尺寸,有效地提供了这些尺寸的平均值。虽然在一些实施例中,通过计算半高全宽(fwhm)来确定特征宽度,但在下文由代码指示的实施例中,使用高斯值下降到0.5和1/e2值时的宽度来确定特征宽度。即使当高斯函数的幅度不是统一的(即,即使函数未被归一化使得幅度等于1.0),这种确定特征宽度的方法可以更好地了解散斑尺寸的大小,这将预期对于归一化数据的良好拟合,但该程序可能会产生预料不到的趋势。
39.在根据纵横比识别畸变度之后,子条带随后被虚拟地拉伸和/或压缩(即,“无畸变”),以使每个散斑、“亮斑”或其他特征回到基本上为圆形的轮廓,从而创建经校正的子条带或帧。对给定条带的每个子条带重复该分析和畸变,然后按照其原始顺序重新组合经校正的子条带(例如,“拼接在一起”),以形成经校正的条带。
40.在一些实施例中,在使用该值消除子条带或帧中的畸变之前,可以进一步调整纵横比。例如,可以调整“所测量的”纵横比以确定“真实”纵横比,然后将“真实”纵横比应用于子条带或帧以提供合适的调整以补偿畸变。可以使用在图3

图5和随附文本(见下文)中所示的程序中获得的曲线拟合公式中的一个公式,或使用任何其他适当调整来执行对所测量的纵横比的调整。
41.在一个实施例中,可以选择条带和子条带的尺寸,使得每个子条带平均具有最多一个散斑、“亮斑”或其中包含的其他特征。通过调整条带和子条带维度以包括最多一个散斑或其他特征,可以基于单个散斑或其他特征,而不是基于单个子条带内的两个或更多个特征,对每个子条带进行调整。然而,在其他实施例中,条带和子条带的尺寸可以被选择为平均包括两个、三个、四个或更多散斑、“亮斑”或其他特征。在各种实施例中,子条带或帧的大小被选择为足够小使得如果有多个(例如,2个、3个、4个或更多个)散斑、“亮斑、”或其他特征被包含在单个子条带或帧中,这些特征彼此足够接近,从而经历了相同或基本相同的畸变量(如果有的话),使得应用于子条带或帧的任何校正因子在使特征中的全部特征更接近圆形轮廓方面具有近似等效的效果。如果子条带或帧太大,则它们可能涵盖畸变的区域以及其他未畸变的区域,这将影响校正因子的确定以及图像畸变被适当补偿的程度。在一些实施例中,可以处理子条带,使其为正方形或近似正方形,其中每个维度具有基本相等数量的像素。
42.在一些实施例中,基于运动的畸变可以是相对局部的,并且可以例如由于成像探针遇到摩擦时的轻微移动延迟或者由于成像探针从摩擦中释放时的轻微移动加速而引起(这可称为旋转内nurd,参见下文)。鉴于畸变的局部性质,两个相邻的子条带可能需要不同的校正量,并且畸变的给定子条带可能与未畸变且根本不需要校正的子条带相邻。此外,旋转成像探针中的畸变可能主要发生在旋转方向上(这对应于图2中的垂直维度)。因此,在一些实施例中,基于散斑、“亮斑”或其他特征的分析所标识的给定子条带的尺寸调整(例如,纵横比的变化)可以通过在保持正交维度固定的同时仅在成像探针的移动方向(例如,图2中的垂直维度)上改变(加长或缩短)子条带的维度来进行。这种方法的优点是,经调整的子条带可以重新组合成具有统一宽度的单个条带。
43.在某些实施例中,基于运动的畸变和/或用于补偿畸变的对图像数据的校正可能导致相邻图像条带之间的数据中的不连续性(这可以称为旋转间nurd,参见下文)。可以对数据应用各种程序以正确对准图像条带并重新连接图像条带,包括下文所描述的涉及测量相邻条带之间的互相关的程序(例如,结合图8的流程图)。
44.以类似的方式分割、分析/扭曲和重新组合每个条带,然后按照其原始顺序重新组合多个经校正的条带,以形成经校正的图像。图2的右面板中示出了经校正的图像的示例。此外,可以根据期望进一步使用经校正的图像。
45.可以构想,条带的相邻子带和/或图像的相邻条带可以以任何期望的方式互相关,使得图像的一部分(例如,单个激光散斑)的边缘对准,以有助于以精确的方式组合经校正的子条带和/或经校正的条带。作为简单的示例,如果一个经校正的条带描绘了其圆周具有已知的曲率的基本半圆形的伪影,并且相邻的经校正的条带描绘了具有非常相似或相同的圆周的反向相对的基本半圆形的伪影,则经校正的条带可以通过“配对”或以其他方式具有对准的周长而与半圆形伪影“匹配”,前提是它们是独一无二的基本圆形伪影的两个部分。可以以包括各种用户可感知形式的任何合适的形式来提供经校正的图像,以用于进一步处理和/或分析。使用本文所公开的技术产生的经校正的图像可以被传送和/或呈现给用户(例如,研究人员、操作员、临床医生等)和/或可以被存储(例如,作为与受试者相关联的研究数据库或医疗记录的一部分)。
46.为了校准畸变校正程序,收集并分析了不同尺寸的荧光珠的一系列图像(图3)。该程序用于确认自然产生的散斑是识别和校正图像畸变并调整使用散斑确定的校正中的任何偏差以与使用参考标准(诸如微珠)识别的畸变对准的有效方法。图像中的实际畸变是基于测量每个珠的纵横比确定的,假设每个珠是纵横比为1的球形结构;因此,珠从纵横比为1的任何偏差被视为图像中实际畸变的指示。基于图像的畸变也基于散斑的纵横比进行估计,散斑的纵横比也假设为1。因此,图3表示基于散斑纵横比的基于图像的畸变估计与通过测量球形微珠的纵横比计算的实际畸变量之间发现的关系(轴是无单位的)。此关系用于帮助校准用于执行示例畸变校正操作的软件。
47.在图3中,绘制的每个圆表示使用微珠和散斑两者确定纵横比的图像或图像部分,其中每个图像的所计算的纵横比以基于散斑的纵横比在x轴上并且基于微珠的纵横比在y轴上而用图表表示。确定使用两个程序生成的纵横比(以及由此产生的所估计的畸变)不完全一致,并且因此使用几个函数来识别使用这两个程序获得的结果之间的数学关系。数据的简单线性拟合产生斜率为1.1的直线,而其他拟合程序产生的各种曲线如图3所示。除了线性拟合外,其他程序包括最小绝对残差(lar)、双平方(参见图4)和鲁棒性关闭(robust off)(这表示“关闭任何鲁棒性近似(robust approximation)”,即标准最小二乘多项式拟合,与lar和双平方拟合相反)。此外,基于双平方公式(参见图5)确定自定义曲线拟合公式(“自定义”)。
48.图4示出了使用双平方技术使用以下参数对数据集进行曲线拟合的结果:
49.f(x)=p1*x3 p2*x2 p3*x p4
50.其中(具有95%置信界限的)系数为:
51.p1=07736(0.4771,1.07)
52.p2=

1.865(

2.779,

0.951)
53.p3=2.739(1.896,3.581)
54.p4=

0.427(

0.6545,

0.1994)
55.图5示出了使用自定义技术使用以下参数对数据集进行曲线拟合的结果:
56.f(x)=p1*x3 p2*x2 p3*x p4
57.其中(具有95%置信界限的)系数为:
58.p1=1.619(1.303,1.934)
59.p2=

3.786(

4.759,

2.813)
60.p3=4.088(3.191,4.985)
61.p4=

0.7122(

0.9544,

0.47)
62.参见图4以获取进一步的信息。
63.用于产生图6和图7的图像的测试样本包括一组干燥微球,这些微球附接在小瓶内壁并使用基于胶囊的成像设备进行成像。微球的尺寸为50.2μm
±
0.3μm(4k

50,热电科学3k/4k系列粒子计数器标准)。选择尺寸使得微球应足够大,以确认图像中每个微球的圆形,但也应足够小以适合在单个成像视场尺寸内,即200μm
×
200μm,尽管也可使用小于100μm并且大于10μm的其他尺寸的微球。图7中的图像是在较低的放大率下收集的,因此显示了比图6中更大的视场。
64.图6示出了如何调整一个子条带(图6的顶部面板左侧上虚线框内的区域)以形成经校正的子条带(图6的底部面板)。图6中的顶部面板示出了图像条带,顶部图像的左侧部分(由虚线框包围并标记为“校正前”)是使用本文所公开的程序处理以确定畸变度以及用于消除畸变的校正因子的子条带。图6的底部面板示出了基于使用所公开的程序识别的校正因子调整其纵横比之后的子条带。虽然水平拉伸是在该示例中执行的唯一补偿,并且因此在该示例中的校正中使用扫描方向上的拉伸/补偿,但在任何(多个)方向上的图像的拉伸或压缩的任何组合可以有助于为特定使用环境创建经校正的子条带。应当注意红色轮廓内“之前”和“之后”区域中的亮区域和暗区域的类似图案。
65.图7描绘了如何使用本文所描述的畸变校正来创建更平滑、更规则的图像,不仅在旋转扫描方向上,而且在次级(例如,轴向)扫描方向上。左面板示出了在应用畸变校正之前的测试或幻影图像,右面板示出了畸变校正之后的相同图像。每个面板中的垂直维度为旋转扫描方向,而每个面板中的水平维度为线性扫描方向。从畸变校正之前的左面板图像中可以看出,图像中的许多特征在水平方向上未对准,而在右面板中畸变校正之后的图像中,特征从左到右对准得更紧密。尽管该样本是用于演示目的的幻影,但本领域的普通技术人员将理解如何使用本文所公开的畸变校正程序经由使用激光散斑辅助过程来帮助提供更准确和有用的成像(例如,对患者体腔内部进行成像,以检测和/或监测病变)。
66.图8是描绘了根据本发明的实施例的用于畸变校正的方法800的流程图。在开始810处,在存储器上加载数据的步骤812之后可以是经由每个旋转分割数据的步骤814,然后是初始化816变量i=1。方法800继续818直到i>#旋转次数,此时方法800到达结束820。
67.方法800的下一步骤可以包括将数据段转换为旋转图像条带822。接下来,方法800可以包括将每个图像条带分割成帧或子条带824。变量j可以被初始化826并且被设置为j=1。每个子条带或帧的分析将继续828直到j>帧的数量。对于每个子条带或帧,方法800可以包括:通过滤波提取每帧的散斑图像830;测量散斑自协方差的纵横比832;根据纵横比计算校正因子834;以及使用校正因子在旋转方向上重新调整图像的大小836。变量j递增838使得在分析每个子条带或帧之后j=j 1,并且控制返回到步骤828以确定j是否>帧的数量。补偿每个子条带或帧的畸变的步骤提供用于旋转内nurd(非均匀旋转畸变)的校正。
68.当分析了特定图像条带的全部帧时(当步骤828处j>帧的数量时),进行调整以校
正旋转间nurd,即相邻图像条带之间的畸变。初始步骤可以包括测量当前和先前图像条带之间的互相关840;后续步骤可以包括计算使互相关最大化的相位延迟值842;并且进一步的步骤可以包括使用相位延迟将当前条带与先前条带对准844。一旦完成,变量i可以增加846,使得i=i 1,并且控制返回到步骤818,以确定i是否>旋转次数。一旦i大于旋转次数,则方法800到达结束820。
69.在一些实施例中,本文所公开的程序可以使用可商用数据分析软件来实现;matlab软件包的此类代码的具体实施例如下所示:
70.%基于散斑的畸变校正
71.data_nd=[];
[0072]
for s=1:hori/vert
[0073]
ind=1 (s

1)*vert:s*vert;
[0074]
img=data1(:,ind);
[0075]
min_int=mean(min(img));
[0076]
max_int=mean(max(img));
[0077]
avg_int=mean(mean(img));
[0078]
med_int=median(median(img));
[0079]
imgf=img

wiener2(img,[2 2]);%维纳滤波器
[0080]
[size_x,size_y]=size(imgf);
[0081]
imgf=imresize(imgf,2);
[0082]
[hfwhm,vfwhm]=specklesize_gray(imgf);
[0083][0084]
mnurd=vfwhm/hfwhm;
[0085]
dnurd=mnurd 0.8109...
[0086]

(

451.6*exp(

0.0007511*avg_int)...
[0087]
0.9899*exp(

3.833e

06*avg_int));
[0088]
rnurd=1.619*dnurd^3

3.786*dnurd^2 4.088*dnurd

0.7122;%自定义
[0089]
rnurd=max([rnurd 1/vert]);%为了防止因子为负
[0090]
img_nd0=0imresize(data1(:,ind),[size_xround(size_y*rnurd)]);
[0091]
data_nd=[data_nd,img_nd];
[0092][0093]
logdata=[int2str(i),

,...
[0094]
int2str(s),

,...
[0095]
int2str(min_int),

,...
[0096]
int2str(max_int),

,...
[0097]
int2str(avg_int),

,...
[0098]
int2str(med_int),

,...
[0099]
num2str(hfwhm),

,...
[0100]
num2str(vfwhm),

,...
[0101]
'\r\n'];
[0102]
fprintf(logid,logdata);
[0103][0104]
%在tif文件中写入
[0105]
maxint=mean(max(img))/2;
[0106]
minint=mean(min(img));
[0107]
img=uint16((img

minint)/maxint*(2^16));
[0108]
maxint=mean(max(img_nd))/2;
[0109]
minint=mean(min(img_nd));
[0110]
img_nd=uint16((img_nd

minint)/maxint*(2^16));
[0111]
index=ceil(i/num_steps);
[0112]
fname=strcat(bead_folder,c,num2str(index),'

',...
[0113]
num2str(s),'(',num2str(vfwhm/hfwhm),')');
[0114]
imwrite(img,strcat(fname,'.tif'),'tif');
[0115]
fname=strcat(nurd_folder,c,num2str(index),'

',...
[0116]
num2str(s),'(',num2str(vfwhm/hfwhm),')_nd');
[0117]
imwrite(img_nd,strcat(fname,'.tif'),'tif');
[0118]
end
[0119]
data1=data_nd;
[0120][0121]
if size(data1,2)<hori/2
[0122]
data1=data0;
[0123]
end
[0124][0125]
%背景补偿
[0126]
hori_cur=size(data1,2);
[0127]
hori_max=max(hori_max,hori_cur);
[0128]
dummy=0;data1_min=min(data1)';
[0129]
data1_temp=[data1_min(hori_cur

dummy 1:hori_cur);
[0130]
data1_min;data1_min(1:dummy)];
[0131]
ylower=smooth(data1_temp,200)';
[0132]
ylower=ylower(dummy 1:hori_cur dummy);
[0133]
comp_bg=repmat(mean(ylower)./ylower,vert,1);
[0134]
data1=data1.*comp_bg;
[0135][0136]
%基于互相关的图像重对准
[0137]
data1=circshift(data1,[0prediff]);
[0138]
strip_prev=smooth(mean(data0)

mean(mean(data0)),2000);
[0139]
strip_curr=smooth(mean(data1)

mean(mean(data1)),2000);
[0140]
[acor,lag]=xcorr(strip_prev,strip_curr);length_acor=length(acor);
[0141]
wfunc=normpdf(1:length_acor,(length_acor 1)/2,(length_acor 1)/2/16)';
[0142]
acor=acor.*wfunc;[~,i]=max(acor);cofactor=(cofactor*(i

1) i)/i;
[0143]
lagdiff=lag(i)*(i>1);prediff=lagdiff;
[0144]
data1=circshift(data1,[0lagdiff]);
[0145]
data0=data1;
[0146][0147]
以下是specklesize_gray()函数的matlab代码:
[0148]
function[hfwhm,vfwhm]=specklesize_gray(speckleimg)
[0149]
m=size(speckleimg,1);%区域的高度
[0150]
n=size(speckleimg,2);%区域的宽度
[0151][0152]
speckleimg=double(speckleimg);
[0153]
e=speckleimg(1,:);%创建具有行1的值的数组
[0154]
s=size(xcov(e));%查找自协方差数组的尺寸
[0155]
d=zeros(s);%创建尺寸s的的空数组
[0156]
d=double(d);%将值型态转换为双精度
[0157][0158]
for i=1:m
[0159]
c=speckleimg(i,:);
[0160]
d=imadd(d,xcov(c,'coeff'));%将所有行的xcov数组求和为d
[0161]
end
[0162][0163]
h0=d/max(d);%所完成的水平产物,h被归一化
[0164]
sizeh=size(h0,2);
[0165]
h=h0(floor(sizeh/2)

5:floor(sizeh/2) 5);
[0166][0167]
e1=speckleimg(:,1);%创建具有列1的值的数组
[0168]
s1=size(xcov(e1));%查找自协方差数组的大小
[0169]
d1=zeros(s1);%创建尺寸s1的空数组
[0170]
d1=double(d1);%将值型态转换为双精度
[0171][0172]
for j=1:n
[0173]
c1=speckleimg(:,j);
[0174]
if max(c1)>0
[0175]
d1=d1 xcov(c1,'coeff');%将所有行的xcov数组求和为d1
[0176]
end
[0177]
end
[0178][0179]
v0=d1/max(d1);%所完成的垂直乘积v被归一化
[0180]
sizev=size(v0);
[0181]
v=v0(floor(sizev/2)

5:floor(sizev/2) 5);
[0182][0183]
%h和v拟合高斯分布,并从拟合中提取散斑大小。
[0184]
helper1=1:size(h,2);
[0185]
helper2=1:size(v);
[0186][0187]
gauss1=fittype('gauss1');%设置高斯曲线拟合
[0188]
excludelowh=excludedata(helper1',h','range',[.1,1]);%排除散斑外部的噪声
[0189]
excludelowv=excludedata(helper2',v,'range',[.1,1]);
[0190]
optionsh=fitoptions(gauss1);
[0191]
optionsv=fitoptions(gauss1);
[0192]
optionsh.exclude=excludelowh;
[0193]
optionsv.exclude=excludelowv;
[0194][0195]
[hfit,hfitstats]=fit(helper1',h',gauss1,optionsh);
[0196]
[vfit,vfitstats]=fit(helper2',v,gauss1,optionsv);
[0197][0198]
hfwhm=(2*(hfit.c1)*sqrt(

log(.5/(hfit.a1))));%fwhm值(拟合=0.5时的全部宽度)
[0199]
vfwhm=(2*(vfit.c1)*sqrt(

log(.5/(vfit.a1))));
[0200]
hesquared=((hfit.c1)*sqrt(

log((.1353353)/(hfit.a1))));%1/e^2值(拟合=0.135时的全部宽度)
[0201]
vesquared=((vfit.c1)*sqrt(

log((.1353353)/(vfit.a1))));
[0202]
end
[0203][0204]
图9示出了示出示例计算机系统900的示意框图,该示例计算机系统900包括能够实现本文所公开的用于识别和校正畸变的系统和方法的实施例的硬件部件,其中系统900可以包括各种系统和子系统。系统900可以是个人计算机、膝上型计算机、工作站、计算机系统、设备、专用集成电路(asic)、服务器、刀片服务器中心、服务器场等,并且可以跨一个或多个计算设备分布。
[0205]
系统900可以包括系统总线902、处理单元904、系统存储器906、存储设备908和910、通信接口912(例如,网络接口)、通信链路914、显示器916(例如,视频屏幕)或其他输出设备以及输入设备918(例如,键盘、鼠标、触摸屏、触摸板等)。系统总线902可以与处理单元904和系统存储器906通信。附加存储器设备908和910可以包括各种非瞬态存储设备,诸如硬盘驱动器、服务器、独立数据库或其他非易失性存储器,也可以与系统总线902通信。系统总线902互连处理单元904、存储器设备906、908、910、通信接口912、显示器916和输入设备918。在一些示例中,系统总线902还可以与一个或多个附加端口互连,诸如通用串行总线
(usb)端口、以太网端口或其他通信机制/连接。
[0206]
处理单元904可以是计算设备,并且可以包括专用集成电路(asic)或其他处理器或微处理器。处理单元904执行一组指令以实现本文所公开的示例的操作。处理单元可以包括处理核。
[0207]
附加存储器设备906、908和910可以存储文本或编译形式的数据、程序、指令、数据库查询以及操作计算机所需的任何其他信息。存储器906、908和910可以被实现为计算机可读介质(集成或可移动的),诸如存储卡、磁盘驱动器、光盘(cd)或可通过网络访问的服务器。在某些示例中,存储器906、908和910可以包括文本、图像、视频和/或音频,其一部分可以以人类可理解的格式可用。
[0208]
附加地或替代地,系统900可以通过通信接口912访问外部数据源或查询源,通信接口912可以与系统总线902和通信链路914通信。
[0209]
在操作中,系统900可以用于实现根据本发明的畸变校正的一个或多个部分。根据某些示例,用于实现畸变校正的部分的计算机可执行逻辑驻留在系统存储器906以及存储器设备908和910中的一者或多者上。处理单元904执行源自系统存储器906和存储器设备908和910的一个或多个计算机可执行指令。本文所使用的术语“计算机可读介质”是指参与向处理单元904提供指令以用于执行的一种或多种介质。
[0210]
因此将理解,计算机可读介质是非瞬态的,并且可以包括例如,经由本地总线或网络连接中的一者或多者操作性地连接到处理单元的多个分立介质。
[0211]
在一些实施例中,可以将任何合适的计算机可读介质用于存储用于执行本文所述的功能和/或过程的指令。例如,在一些实施例中,计算机可读介质可以是瞬态的或非瞬态的。例如,非瞬态计算机可读介质可包括以下介质,诸如:磁介质(诸如硬盘、软盘等)、光介质(诸如压缩碟、数字视频碟、蓝光碟等)、半导体介质(诸如ram、闪存存储器、电可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)等)、在传输期间不是短暂的或不是没有任何持久外观的任何合适的介质、和/或任何合适的有形介质。作为另一示例,瞬态计算机可读介质可包括在网络上的信号、在电线的信号、导体、光纤、电路、或在传输期间是短暂的和没有任何持久外观的任何合适介质、和/或任何合适的无形介质。
[0212]
应注意,如本文所使用的术语机制可涵盖硬件、软件、固件或其任何适当组合。
[0213]
图10示出了根据所公开主题的一些实施例的用于校正图像畸变的过程的示例1000。如图10所示,在1002处,过程1000可以分析图像的图像段以识别散斑伪影,该图像段是从扫描成像设备获得的。在1004处,过程1000可以确定散斑伪影的形状的纵横比。在1006处,过程1000可以基于该纵横比确定用于散斑伪影的形状的校正因子。最后,在1008处,过程1000可以基于校正因子调整图像段的尺寸。
[0214]
图11示出了根据所公开的主题的一些实施例的用于畸变校正的过程的示例1100。如图11所示,在1102处,过程1100可以提供图像。在1104处,过程1100可以将图像划分为多个基本平行的条带,每个条带在第一方向上延伸。在1106处,过程1100可以沿着基本垂直于第一方向的第二方向将每个条带划分为多个子条带。在1108处,过程1100可以分析多个子条带中的每个子条带,以定位至少一个局部明亮特征。在1110处,过程1100可以使每个子条带的至少一部分畸变,以促使局部最大/最小特征朝向预定形状,从而创建经校正的子条带。在1112处,过程1100可以将多个经校正的子条带重新组装成经校正的条带。最终,在
1114处,过程1100可以将多个经校正的条带重新组装成经校正的图像。
[0215]
应当理解,图10和图11的过程的上述步骤可以以不限于附图中所示和描述的顺序和序列的任何顺序或序列来执行或进行。此外,图10和图11的过程的上述步骤中的一些步骤可以在适当的情况下基本同时执行或并行执行,以减少延迟和处理时间。
[0216]
如本文中所使用,单数形式的“一(a)”、“一(an)”和“该”(“the”)也可以包括复数形式,除非上下文另外清楚地指示。还将理解,当在本文使用术语“包括”(“comprise”)和/或“包括”(“comprising”)时,可以指定所陈述的特征、步骤、操作、元件、和/或部件的存在,但不排除一个或多个其他特征、步骤、操作、元件、部件、和/或它们的组的存在或添加。
[0217]
如本文所使用的,术语“和/或”包括相关联的列出项目中的一个或多个项目的任何和所有组合。
[0218]
应当理解,当元件被称为“在

上”、“附接”到、“连接”到、“耦合”到“接触”等时,另一元件可以直接在另一个元件上、附接到、连接到、耦合到或接触另一元件,或者也可能存在居间元件。相反,当元件被称为例如“直接在

上”、“直接附接”、“直接连接”、“直接耦合”或“直接接触”另一个元件时,不存在居间元件。
[0219]
如图所示,为了便于描述,本文可以使用空间相关术语,诸如“下面(under)”、“低于(below)”、“下部(lower)”、“上方(over)”、“上部(upper)”等来描述一个元素或特征与(多个)其他元素或特征的关系。应当理解,除了附图中所描绘的定向之外,空间相对术语还可以涵盖正在使用或操作的设备的不同定向。例如,如果附图中的设备倒置,则被描述为“在”其他元件或特征“下面”或“下方”或“在”的元件将被定向为“在”其他元件或特征的“上方”。
[0220]
本发明以任何组合包括、组成或基本上组成本文所描述的特征。
[0221]
因此,虽然以上已经结合特定实施例和示例描述了本发明,但是本发明不一定受如此限制,并且许多其他实施例、示例、用途、修改以及对所述实施例、示例和用途的偏离旨在被所附权利要求所包含。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献