首页 / 专利库 / 工业自动化和数控机床 / 坐标系 / 与设备无关地确定用显微镜成像的点的坐标的方法和系统

与设备无关地确定用显微镜成像的点的坐标的方法和系统

阅读:1030发布:2020-11-01

专利汇可以提供与设备无关地确定用显微镜成像的点的坐标的方法和系统专利检索,专利查询,专利分析的服务。并且本 发明 涉及用于与设备无关地确定一用 显微镜 成像的点(P)的坐标的方法和系统,其中首先针对至少一个参考点(E1)在DICOM 坐标系 中的与物体有关的预定参考坐标(X1,Y1,Z1)确定至少一个被成像的参考点(E1)在与设备有关的坐标系内的所属设备坐标(x1,y1,z1),由此求出一个用于把与设备有关的坐标(x,y,z)换算成DICOM坐标系坐标(X,Y,Z)的变换规则(φ),然后借助于被求出的变换规则(φ)把成像点(P)的设备坐标(xP,yP,zP)换算成与设备无关的DICOM坐标系坐标(XP,YP,ZP),以进行与设备无关的坐标确定。,下面是与设备无关地确定用显微镜成像的点的坐标的方法和系统专利的具体信息内容。

1.用于与设备无关地确定一用显微镜成像的点(P)的坐标的方 法,其中
首先针对至少一个参考点(E1)在DICOM坐标系中的与物体有关的 预定参考坐标(X1,Y1,Z1)确定至少一个被成像的参考点(E1)在与设备 有关的坐标系内的所属设备坐标(x1,y1,z1),由此求出一个用于把与 设备有关的坐标(x,y,z)换算成DICOM坐标系坐标(X,Y,Z)的变换规 则(φ),以及
然后借助于被求出的变换规则(φ)把成像点(P)的设备坐标 (xP,yP,zP)换算成与设备无关的DICOM坐标系坐标(XP,YP,ZP),以 进行与设备无关的坐标确定。
2.权利要求1的方法,其特征在于:采用一个校准载物台来预给 定一个或多个参考点(E1)的参考坐标(X1,Y1,Z1)。
3.权利要求2的方法,其特征在于:为确定类型的载物台分别制 造和/或使用一个校准载物台。
4.权利要求1-3之一的方法,其特征在于:尤其针对(x,y)坐标 采用超定的仿射变换来求取所述的变换规则。
5.权利要求1-4之一的方法,其特征在于:尤其针对z坐标采 用求平均和/或斜平面形式的措施来求取所述的变换规则。
6.应用于权利要求1-5之一的方法的校准载物台,其具有至少 一个参考点(E1),该参考点具有预定的DICOM坐标系参考坐标 (X1,Y1,Z1)。
7.权利要求6的校准载物台,其大小和形状对应于已知类型的载 物台。
8.权利要求6-7之一的校准载物台的用途,其被应用于权利要 求1-5之一所述的方法。
9.用于与设备无关地确定一用显微镜成像的点(P)的坐标的系 统,其中
所述的显微镜具有用于确定成像点(P)的设备坐标(xP,yP,zP) 的单元(4),并且
设有一个计算机单元,该计算机单元根据至少一个被成像的参考 点(E1)的设备坐标(x1,y1,z1)和所属的在DICOM坐标系中的与物体有 关的预定参考坐标(X1,Y1,Z1)计算出一个用于把与设备有关的坐标 (x,y,z)换算成DICOM坐标系坐标(X,Y,Z)的变换规则(φ)。
10.权利要求9的系统,其中所述的计算机单元被构成使得借助 于被求出的变换规则(φ)从成像点(P)的设备坐标(xP,yP,zP)求出 与设备无关的相应DICOM坐标系坐标(XP,YP,ZP)。
11.具有程序编码工具的计算机程序,当该计算机程序在计算机 或相应的计算机单元上、尤其是在权利要求9所述系统的计算机单元 上被执行时,用于执行权利要求1-5中至少一项所述的方法。
12.具有程序编码工具的计算机程序产品,其被存储在计算机可 读的数据载体上,当该计算机程序产品在计算机或相应的计算机单元 上、尤其是在权利要求9所述系统的计算机单元上被执行时,用于执 行权利要求1-5中至少一项所述的方法。

说明书全文

发明涉及用于与设备无关地确定一用显微镜成像的点的坐标的 方法和系统,以及涉及一种用于此的校准载物台。

显微镜经常被用来识别小的、用裸眼看不到的结构,以及被用来 找出这些结构中的特定特征。在细胞学、组织学和病理学中,显微镜 的基本任务在于详细扫描标本和搜寻感兴趣的结构、细胞或细胞联合 及其类似物。如果在标本上已找到这些结构的位置,那么由于各种原 因,对这些位置进行标记是值得追求的。例如,为了检验、进一步检 查或出于质量保证的原因,被找到的结构必须在以后的时刻由相同的 或另一个用户再次找出。为此,许多显微镜具有一个单元以用于测定 某个点在与设备有关的坐标系中的位置坐标。通过机电地测定这种坐 标,可以在以后的时刻再次驶向该被找到的位置。

然而坐标通常是与设备有关的,也就是说,只有当显微镜校准没 有发生变化和没有出现容差时,才能正确地再现该设备的坐标。但如 果例如显微镜台被拿掉去修理然后又被装上,那么对于标本上的同一 位置,该显微镜台会提供一个不同于原来所确定的坐标的坐标。不同 的显微镜、即便是相同的类型,其坐标系也不是(完全)相同的。

需要在任意的显微镜之间建立互用性,以便例如第二用户能够在 其系统中再次驶向标本上的、已被任意第一用户测定和存储的感兴趣 位置。

该任务通过本发明的用于与设备无关地确定一用显微镜成像的点 的坐标的方法和系统来解决。本发明的方法规定,首先针对至少一个 参考点E1在DICOM坐标系中的与物体有关的预定参考坐标(X1,Y1,Z1) 确定至少一个被成像的参考点E1在与设备有关的坐标系内的所属设备 坐标(x1,y1,z1),由此求出一个用于把与设备有关的坐标(x,y,z)换算 成DICOM坐标系坐标(X,Y,Z)的变换规则φ。然后借助于被求出的变 换规则φ把成像点(P)的设备坐标(xP,yP,zP)换算成与设备无关的DICOM 坐标系坐标(XP,YP,ZP),以进行与设备无关的坐标确定。

“Digital Imaging and Communications in Medicine”(DICOM-) 标准已经被研制用于医学设备的图像的格式化和交换,并且被集成到 该设备中。DICOM还在美国、欧洲、日本被公知。DICOM委员会已经在 1999年7月2日在美国弗吉尼亚在Supplement(增刊)15中制定了 在内窥镜检查术、显微术和摄影术中用于用可见光获得的图像的标准 (Supplement 15:Visible Light Image for Endoscopy,Microscopy and Photography)。利用本发明,这种仅涉及标本的并因此与设备无 关的DICOM坐标系可以在任意的显微镜上实现。本发明方案的技术解 决包括两个步骤。首先如此地校准显微镜坐标系,使得求出一个用于 把与设备有关的坐标换算成与设备无关的DICOM坐标系坐标的变换规 则。在该校准步骤之后,任意成像点的坐标可以借助于该变换规则被 变换成与设备无关的DICOM坐标系坐标。然后,即便在另外的显微镜 上,也可以在以后时刻或由另外的用户再次驶向后面的那个坐标,显 然,该另外的设备必须还包括用于该DICOM坐标系的校准可能性。

对于所述的校准步骤,在一个非常优选的方案中采用一个校准载 物台来预给定至少一个参考点E1的参考坐标。该校准载物台根据DICOM 标准的预给定具有标记预定参考点的校准十字。

为了能最佳地考虑(x,y)平面中的所有被考虑的变换,也即平移、 旋转和缩放,在数学上在校准载物台上需要至少2.5个参考点或校准 十字。当需要在z方向也进行校准时,可能需要附加的点。

因为在显微术中使用确定类型的载物台,所以优选地为每个载物 台类型分别制造和为本发明方法使用一个相应的校准载物台。

为了校准的目的,例如在校准载物台(校准载片)上布置三个与 参考点E1,E2和E3相对应的校准十字。该参考点或校准点E1~E3的 (X,Y,Z)坐标是被规定的。它们涉及DICOM坐标系的坐标原点,该坐标 原点可以位于载物台的外处。

用显微镜台驶向校准点E1~En(n>=1),并且各个(x1,y1,z1),..., (xn,yn,zn)值被记录和存放在本地的、也即所用显微镜的与设备有关 的坐标系中。对于校准点E1~En,在DICOM坐标系中的(X,Y,Z)值,以 及经测量后的本地坐标系中的(x,y,z)值是已知的,因此通过标准方 法可以计算出用于把与设备有关的坐标换算成与设备无关的DICOM坐 标系坐标的变换规则。

在此,针对(x,y)坐标采用超定的仿射变换来作为变换方法。对于 在一个平面内出现的平移、旋转和用缩放因子缩放的变换,当需要考 虑所有上述校准可能性时,在数学上需要至少2.5个、实际中也即至 少3个参考点(校准十字)。

DICOM坐标系的Z坐标原点位于载物台的表面(无玻璃盖)。由于 在上述校准中也一同纳入了本地的Z坐标,所以也可以将z值变换到 DICOM坐标系。在Z校准中,基本上可以区分为两种情况。

如果在校准时需要在(X,Y)平面的方向上增加或减小所述校准载 物台的表面的z值,则指示出:该校准载物台没有完全平,而是一 个在Z方向上具有倾斜度的斜平面。在该情况下,为了提高精度,还 需要利用斜平面形式的措施来进行Z校准,因为否则的话(X,Y)校准 的精度会下降。在该情况下,可以沿着斜平面的斜坡通过聚焦到载物 台的表面来测量偏差Δz,然后进行Z校准,为此在数学上需要至少1.5 个点。因此,为了结合(X,Y)平面中的超定的仿射变换一起进行这种Z 校准,在校准载物台上需要至少4个点(2.5+1.5=4)。

相反,如果确定在校准载物台上的一些被选出的参考点的z坐标 相互有偏差,但并未呈现为斜平面的形式,那么可以采取求平均作为 简单的变换规则,其中对所述参考的上述z坐标求平均,并将该平均 值定义为z方向上的坐标原点。换句话说,计算出的z坐标的平均值 对应于DICOM坐标系的坐标原点。

另外也可以想见,结合地发生上述两种作用。

为了应用于本发明的方法,建议了一种校准载物台,其具有至少 一个参考点,该参考点具有预定的DICOM坐标系参考坐标。如上文所 述,在该校准载物台上设有校准十字,该校准十字表现为本发明方法 的参考点。在DICOM坐标系中,坐标原点位于矩形校准载物台的一个 外角上。尤其有利的是,该校准载物台的大小和形状对应于已知类型 的载物台,就象在显微镜中被使用的那种。

为了互用性,有必要在相应的系统(显微镜)上进行本发明方法 的校准。为此采用相同的校准载物台是最适用的。

作为用于与设备无关地确定一用显微镜成像的点的坐标的系统, 其中所述的显微镜具有用于确定成像点P的设备坐标(xP,yP,zP)的单 元,本发明规定:设有一个计算机单元,该计算机单元根据至少一个 被成像的参考点E1的设备坐标(x1,y1,z1)和所属的在DICOM坐标系中 的与物体有关的预定参考坐标(X1,Y1,Z1)计算出一个用于把与设备有 关的坐标(x,y,z)换算成DICOM坐标系坐标(X,Y,Z)的变换规则φ。 用于计算变换规则的该计算单元可以被集成在显微镜中,或者是外围 计算机的组成部分。

利用本发明的这种系统可以将与设备有关的坐标变换成与设备无 关的DICOM坐标系坐标。为此,将求出的变换规则φ应用到任意成像点 P的坐标(xP,yP,zP),并计算出与设备无关的DICOM坐标系中的相应 坐标(XP,YP,ZP)。为了使本发明的校准方法和随后的与设备无关的坐 标计算尽可能有效地自动化,借助于计算机程序来设施该方法是有意 义的,该计算机程序尤其在本发明系统的上述计算机单元上被启动和 执行。该计算机程序可以被存储在如CD-ROM、EEPROM或也可以是闪存 形式的数据载体上,或者可以通过各种计算机网(如内联网或互联网) 被下载到工作存储器中。

在运行该计算机程序时,例如在把具有DICOM坐标系的校准载物 台放到显微镜台上后,(自动地)测量在与设备有关的坐标系中的以 校准十字形式敷设的参考点,并确定相应的坐标。在测量优选为3个 或更多个这种参考点之后,该计算机程序开始计算变换规则。然后, 用显微镜检查标本,并由该计算机程序借助于该变换规则自动地把感 兴趣的点的设备坐标换算成与设备无关的DICOM坐标系坐标。

该计算机程序可以通过用户的交互来控制上述所有的过程,或者 自动地执行程序模形式的该方法的某些部分。

下面借助于附图所示的实施例来详细讲述本发明及其优点。

图1用简要视图示出了本发明的系统,用于与设备无关地确定需 用显微镜成像的点的坐标;

图2示出了本发明的校准载物台和显微图像,其具有被简要地示 出的用于确定设备坐标以求出变换规则φ的单元的一部分;

图3示出了在取决于设备的坐标系和在DICOM坐标系中的成像点 P。

图1以非常简略的形式示出了一个显微镜1,其具有物镜7用于对 由载物台6所承载的物体结构进行放大成像。这种物体结构可以是细 胞、细胞联合,但也可以是象半导体结构那样的技术结构。与此相应, 显微术的应用从医学领域(细胞学、组织学、病理学)延伸到技术领 域(例如晶片制造或纳米技术)。在这种应用领域中,有必要在结构 中标记奇异性或缺陷,而且在以后时刻或由其他用户能再次找到它 们。

通常在显微镜1或显微摄像机11上连接一个计算机单元2,以便 能进一步处理和存储显微图像。为简化的缘故,下面假定在计算机单 元2的监视器10上能够观察显微图像8,而且用于确定设备坐标(在 显微图像中的坐标)的单元4的至少一部分也存在于计算机单元2中。

载物台6通常通过真空抽吸法被装到显微镜台5上,其中显微镜 台5通常在其空间位置方面可调。为了检查物体结构,可以进行总拍 摄(ONESHOT)或扫描。

从显微镜1或从显微摄像机11传输给计算机单元2的图像数据在 该实施例中被显示在计算机单元2的监视器10上的与设备有关的坐标 系中,其中例如通过用鼠标12点击所显示的图像的某个点,就可以求 出、显示和存储该点在显微镜系统中的相应坐标。

在当前情况下,计算机单元2具有一个计算机程序,其根据一个 或多个被成像的参考点和相对于载物台6上的DICOM坐标系的所属的 已知预定参考坐标可以推导出一个变换规则φ,借助于该变换规则可以 把与设备有关的坐标换算成DICOM坐标系中的坐标(这种计算机程序 的例子可以在本说明书的最后找到)。为此,有意义的是通过以下方 式对系统进行校准,即把具有DICOM坐标系中的至少一个参考点的校 准载物台3用作载物台,以便借助于一个或多个被成像的参考点计算 出所述的变换规则。

与设备无关地确定例如表示一个干扰、一个奇异性或一个缺陷的 成像点的坐标,对于可靠地再次找到该点是非常有益的。尽管在同一 或相同的设备中存在容差,这也可以例如在以后在同一设备或相同结 构类型的设备处进行检查时实现可靠的再次寻找,但即便在以后在另 外的设备处或在远距显微术(远距病理学或远距诊断或远距手术)中 进行检查时也能这样。

图2示出了具有DICOM-(XY-)坐标系的校准载物台3和具有与设 备有关的(xy-)坐标系的所属显微图像8。变换规则φ在该两个坐标系 之间建立了关联。

在该实施例中,本发明的校准载物台3(校准载片)具有6个校准 十字9,对应于DICOM坐标系X、Y、Z中的点E1至E6,其中坐标原点 位于校准载物台3的左上角。出于简单的原因下面不考虑Z坐标。Z校 准的可能性已经在本说明书的上文给出。为了校准图1所示的系统, 首先把校准载物台3放置到显微镜台5上,并借助于显微镜1和计算 机单元2产生一个显微图像8。在图2的下半部示出了这种显微图像8, 其具有与设备有关的坐标系x,y,其中借助于单元4可以针对被成像的 校准十字(E1至E6)确定相应的设备坐标(x1,y1)至(x6,y6)。需要指出 的是,并不是所有的6个校准十字9都必须被考虑用来校准,而是根 据所需要的精度,较少的校准十字就足够了。但如上所述,有益的是, 为借助于超定的仿射变换推导出变换规则而采用三个校准十字。

超定的仿射变换方法(参见本说明书最后的实施例)本身是已知 的,因此下面不再详细讲述。也可以采用本领域技术人员公知的用于 推导变换规则φ的其它方法。由用于确定设备坐标的单元4确定合适数 量的被成像的校准十字(也即x,y坐标系中的相应参考点E1,E2,E3...) 的坐标。校准载物台3上的相应校准十字(参考点)在DICOM-XY-坐 标系中的坐标是预给定的。计算机单元2,或更确切地说是在该计算机 单元2上运行的相应计算机程序,可以由此计算出用于把与设备有关 的坐标(x,y)换算成与设备无关的DICOM坐标系坐标(X,Y)的变换 规则φ。

有意义的是,把被用于计算所属变换规则φ-如上所述-的相应校 准载物台制成通用的载物台型式。

现在利用所求出的变换规则φ可以把成像点P的设备坐标(xp,yp) -如图3所示-换算成与设备无关的DICOM坐标系坐标(XP,YP)。在 此,点P例如可以表示在某个细胞结构中的奇异性或半导体结构中的 缺陷。点P的坐标通过所述用于确定设备坐标的单元4来确定,并利 用已知的变换规则φ被换算成与设备无关的DICOM坐标系坐标。为了以 后的检查或再检查,点P的与设备无关的坐标与用于再检查的标本一 起被转交。进行再检查的系统显然也必须具有DICOM坐标系的校准可 能性。尤其必要的是,该系统根据所转交的点P的DICOM坐标利用逆 变换规则φ-1来计算出点P的所属与设备有关的坐标,以便能再次驶向 显微图像8中的该点。

下面给出一个用C编程语言编写的计算机程序的例子,用它可以 通过超定的仿射变换方法对本地显微镜坐标系和DICOM坐标系的坐标 进行来回变换:

  /*-------------------------------------------------------*/    //calculation for overdetermined affine transformation    //forward and backward calculation    //coordinate systems are:    // native microscope-coordinate system,slide-dependent    // microscope-independent DICOM coordinate system    /*------------------------------------------------*/    #include<stdio.h>    /**Function PROTOTYPES**/   //given:native microscope coordinates,calculate DICOM coordinates void   CalculateDICOMCoordinates   double x_Microscope,   double y_microscope,   double*pX_DICOM,   double*pY_DICOM   );   //given:DICOM coordinates,calculate native microscope coordinates void   CalculateNativeMicroscopeCoordinates   double X_DICOM,   double Y_DICOM,   double*px_Microscope,   double*py_Microscope
  );   //calculate coordinate transformation coefficients for forward and back transformation   int CalcForwBackwTransCoefficients   int NoOfGaugingPoints,   double*x_MicroscopeSystem,   double*y_MicroscopeSystem,   double*x_DICOMSystem,   double*y_DICOMSystem   );   //reset transformation coefficients to default values    void ResetTransformationCoefficients(void);    int CalculateTransformation(    double*a,double*b,double*c,   double*d,double*e,double*f,   int NoOfGaugingPoints,   double*x_Microscope,double*y_Microscope,   double*x_DICOM,double*y_DICOM   );   /*static variables for coordinate transformation*/   /*forward transformation coefficients*/   double aFwd=1.0;   double bFwd=1.0;   double cFwd=0.0;   double dFwd=1.0;   double eFwd=1.0;   double fFwd=0.0;   /*backward transformation coefficients*/   double aBwd=1.0;   double bBwd=1.0;   double cBwd=0.0;   double dBwd=1.0;   double eBwd=1.0;   double fBwd=0.0;   int main(void)   { //coordinates of calibration points E1 to E6 in DICOM and native microscope system    double aX_DICOM□={3000.,3000.,3000.,17000.,17000.,17000.};    double aY_DICOM□={10000.,30000.,50000,10000.,30000.,50000.};    double ax_Microscope□={41000.,43000.,45000.,181000.,183000.,    185000};    double ay Microscope□={129400.,309400.,489400.,126600.,306600., 486600.};    doublexMicTest,yMicTest;    doubleXDICTest,YDICTest;    int i;    printf("\n\n");    printf("Affin Transformation From Native Microscope To DICOM Coordinate    System\n");    printf    ("==================================================================\n");    printf("\n\n\n");    printf("Coordinates of gauging points\n\n");    for(i=0;i<=5;++i){    printf ("E%d: X-DICOM=%10.1f Y-DICOM=%10.1f x-Mic=%10.1f y- Mic=%10.1f\n",    i+1,aXDICOM[i],aY_DICOM[i],axjvlicroscope[i],ay_Microscope[i]);    printf("\n\n");    if(0==CalcForwBackwTransCoefficients(6,    ax_Microscope,ay_Microscope,aX_DICOM,aY_DICOM)){printf    ("computation failed\n");    return 0;    }    printf("forward calculation coefficients\n");    printf("--------------------------\n");    printf("X-DICOM=%.4f*x-Mic+%.4f*y-Mic+%.4f\n",aFwd.bFwd.cFwd);printf    ("Y-DICOM=%.4f*x-Mic+%.4f*y-Mic+%.4f\n\n\n",dFwd,eFwd,fFwd);   printf("backward calculation coefficients\n");       printf("-------------------\n\n");   printf("x-Mic=%.4f*X-DICOM+%.4f*Y-DICOM+%.4f\n",aBwd.bBwd.cBwd);   printf("y-Mic=%.4f*X-DICOM+%.4f*Y-DICOM+ %.4f\n\n\n",dBwd.eBwd.fBwd);    printf("Tests of calculation\n");    printf("...............\n\n");    printf("Test1 using microscope coordinates of gauging point E4 as input\n");    printf("\n\n");    xMicTest=181000.;    yMicTest=126600.;    printf("***input***:xMicroscope=%10.1f y Microscope=%10.1f\n",xMicTest, yMicTest);    CalculateDICOMCoordinates(181000.,126600.,&XDICTest,&YDICTest);    printf("***result***:x DICOM=%10.1f y DICOM=%10.1f\n\n",XDICTest YDICTest);    printf("End of test1\n\n");    printf("Test2 applying forward and backward transformation to test point\n");    printf("\n\n");    xMicTest=100000.;    yMicTest=250000.;    printf("***input ***:x Microscope=%10.1f y Microscope=%10.1f\n",xMicTest, yMicTest);    printf("forward transform\n");    CalculateDICOMCoordinates(xMicTest,yMicTest,&XDICTest,&YDICTest);    printf("*"result***:x DICOM=%10.1f y DICOM=%10.1f\n",XDICTest,YDICTest);    printf("backward transform\n");    xMicTest=0.;    yMicTest=0.; CalculateNativeMicroscopeCoordinates(XDICTest,YDICTest,    &xMicTest, &yMicTest); printf("***result"*:x Microscope=%10.1f y Microscope=%10.1f\n",xMicTest, yMicTest); printf("End of test2\n\n"); return0; } /*----------------------------------------------*/   //forward transformation:calculate DICOM coordinates from   //native microscope coordinates /*----------------------------------------------*/   void CalculateDICOMCoordinates(   //input:x,y coordinates in the microscope system   double x_Microscope,   double y_Microscope,   //output:X.Y coordinates in the DICOM System   double*pX_DICOM,   double*pY_DICOM   )   {   *pX_DICOM=aFwd*x_Microscope+bFwd*y^Microscope+cFwd;   *pY_DICOM=dFwd*x_Microscope+eFwd*yMicroscope+fFwd;    /*---------------------------------------------*/ //back transformation:calculate native microscope-coordinates from DICOM //coordinates    /*---------------------------------------------*/ void CalculateNativeMicroscopeCoordinates(   //input:X.Y coordinates in the DICOM System   double X_DICOM,  double Y_DICOM,     //output:x,y coordinates in the microscope system  double*px_Microscope,   double*py_Microscope   )   {   *px_Microscope=aBwd*X_DICOM+bBwd*Y_DICOM+cBwd;   *py_Microscope=dBwd*X_DICOM+eBwd*Y_DICOM+fBwd;    } /*===================================================*/    int CalcForwBackwTransCoefficients    int NoOfGaugingPoints,    double*x_MicroscopeSystem,    double*y_MicroscopeSystem,    double′x_DICOMSystem,    double*y_DICOMSystem   /*===================================================*/    if(NoOfGaugingPoints<3)return 0;    if(0==CalculateTransformation(&aBwd,&bBwd,&cBwd,&dBwd,&eBwd,&fBwd,    NoOfGaugingPoints,x_MicroscopeSystem,y_MicroscopeSystem,x_DICOMSystem,    y_DICOMSystem))    return 0;    if(0==CalculateTransformation(&aFwd,&bFwd,&cFwd,&dFwd,&eFwd,&fFwd,    NoOfGaugingPoints,x_DICOMSystem,y_DICOMSystem,x_MicroscopeSystem,    y_MicroscopeSystem))   return 0;    return 1; }   /*===================================================*/    void ResetTransformationCoefficients(void)   /*===================================================*/    /*reset coefficients*/    aFwd=1.0;    bFwd=1.0;    cFwd=0.0;    dFwd=1.0;    eFwd=1.0;    fFwd=0.0;    aBwd=1.0;    bBwd=1.0;    cBwd=0.0;   dBwd=1.0;      eBwd=1.0;    fBwd=0.0; }   /*===================================================*/    Int CalculateTransformation(double*a,double*b,double*c,    double*d,double*e,double*f,    int NoOfGaugingPoints,    double*x_Microscope,double*y_Microscope,    double*x_DICOM,double*y_DICOM    )   /*===================================================*/    {    int i;    double*xDIC,*yDIC,*xMic,*yMic;double r1, r2,r3,r4,r5,r6,r7,r8;double r9,r10,r11,r12,r13, r14,r15;   r1=r2=r3=r4=r5=r6=r7=r8=r13=r14=r15=0.0;    xDIC=x_DICOM;yDIC=    y_DICOM;xMic=x_Microscope;    yMic=y_Microscope;   for(i=0;i<NoOfGaugingPoints;i++)    {    r1+=*xDIC;    r2+=*yDIC;    r3+=*xDIC**xDIC;r4+=   *yDIC**yDIC;r5+=*xMic;    r6+=*xDIC**yDIC;r7+=   *xMic**yDIC;r8+=*xDIC*   *xMic++;    r13+=*yMic;    r14+=*y DIC++**yMic;    r15+=*xDIC++**yMic++;   }  /*accounting of coefficients a,b,c*/   for(i=1;i<=2;i++){      r9=r3*r4*NoOfGaugingPoints+2*r1*r2*r6-r1*r1*r4-r2*r2*r3\    -r6*r6′NoOfGaugingPoints;    /*transformation is singular*/    if(r9==0.0)   return0;    if(i==2)   {    /*accounting of coefficients d,e,f*/    r5=r13;    r7=r14;    r8=r15;    }    r10=r8*r4*NoOfGaugingPoints+r6*r2*r5+r1*r7*r2-\   r1*r4*r5-r8*r2*r2-r6*r7*NoOf- GaugingPoints;    r11=r3*r7*NoOfGaugingPoints+r8*r2*r1+r1*r6*r5-r1*r1*r7-r3*r2\   *r5-r8*r6*NoOfGaugingPoints;r12    =r3*r4*r5+r6*r7*r1+r8*r6*r2\    -r8*r4*r1-r5*r6*r6-r3*r7*r2;    r10=r10/r9;    r11=r11/r9;    r12/=r9;    if(i==1)   {    *a=r10;*b=r11;*c=r12;    }else    {    *d=r10;*e=r11;*f=r12;    }    }    return 1;   }   /*====================End(end of file)=====================*/

以下的文本展示了当预给定6个校准点E1-E6并然后执行两次测 试时由上述程序所生成的打印。第一测试(Test1)针对校准点E4进 行到DICOM坐标系的去向变换,而第二测试(Test2)执行预定测试点 (P)的来回变换:

  Affine Transformation From Native Microscope To DICOM Coordinate System   ===========================================================================   Coordinates of gauging points   E1:X-DICOM=3000.0Y-DICOM=10000.0x-Mic= 41000.0 y-Mic=129400.0   E2:X-DICOM=3000.0Y-DICOM=30000.0x-Mic= 43000.0 y-Mic=309400.0   E3:X-DICOM^3000.0Y-DICOM=50000.0x-Mic= 45000.0 y-Mic=489400.0   E4:X-DICOM=17000.0Y-DICOM=10000.0x-Mic= 181000.0 y-Mic=126600.0   E5:X-DICOM=17000.0Y-DICOM=30000.0x-Mic= 183000.0 y-Mic=306600.0   E6:X-DICOM=17000.0Y-DICOM=50000.0x-Mic= 185000.0 y-Mic=486600.0   forward calculation coefficients     -------------------------------   X-DICOM=0.1000*x-Mic+-0.0011*y-Mic+-955.3433   Y-DICOM=0.0022*x-Mic+0.1111*y-Mic+-4465.6743   backward calculation coefficients   --------------------------------   x-Mic=10.0000*X-DiCOM+0.1000*Y-DICOM+10000.0000   y-Mic=-0.2000*X-DICOM+9.0000*Y-DICOM+40000.0000   Tests of calculation   --------------------    Test1 using microscope coordinates of gauging point E4 as input    ***input***:xMicroscope=181000.0 y Microscope=1 26600.0***   result***:x DICOM=17000.0 y DICOM=10000.0    End of test1    Test2 applying forward and backward transformation to test point    ***input***:x Microscope=100000.0 y Microscope=250000.0      forward transform    ***result***:x DICOM=8764.7 y DICOM=23528.1    backward transform    ***result***:x Microscope=100000.0 y Microscope=250000.0    End of test2

为了更易于理解,以上由程序产生的文本的打印在下文再次用德 语(尽可能地)再现:

  Affine Transformation vom nativen Mikroskop-zum DICOM Koordinatensystem   Koordinaten der Eichpunkte     E1:X-DICOM= 3000.0 Y-DICOM= 10000.0 x-Mic= 41000.0 y-Mic=129400.0   E2:X-DICOM= 3000.0 Y-DICOM= 30000.0 x-Mic= 43000.0 y-Mic=309400.0   E3:X-DICOM= 3000.0 Y-DICOM= 50000.0 x-Mic= 45000.0 y-Mic=489400.0   E4:X-DICOM= 17000.0 Y-DICOM= 10000.0 x-Mic= 181000.0 y-Mic=126600.0   E5:X-DICOM= 17000.0 Y-DICOM= 30000.0 x-Mic= 183000.0 y-Mic=306600.0   E6:X-DICOM= 17000.0 Y-DICOM= 50000.0 x-Mic= 185000.0 y-Mic=486600.0   Berechnungskoeffizienten für Hintransformation   X-DICOM=0.1000*x-Mic+-0.0011*y-Mic+-955.3433   Y-DICOM=0.0022*x-Mic+0.1111*y-Mic+-4465.6743   Berechnungskoeffizienten für Rücktransformation   x-Mic=10.0000*X-DICOM+0.1000*Y-DICOM+10000.0000 y- Mic=-0.2000*X-DICOM+9.0000*Y-DICOM+40000.0000   Berechnungstests   Test1 unter Verwendung der Mikroskopkoordinaten des Eichpunktes E4 als Eingabe   ***Eingabe ***:x Microscope=181000.0 y Microscope=126600.0   ***Ergebnis ***:x DICOM=17000.0 y DICOM=10000.0   Ende des Test1   Test2 mit Hin-und Rücktransformation des Testpunktes   ***Eingabe***:xMicroscope=100000.0 y Microscope=250000.0   Hintransformation   ***Ergebnis***:x DICOM=8764.7 y DICOM=23528.1   Rücktransformtion   ***Ergebnis***:x Microscope=100000.0 y Microscope=250000.0 Ende des Test2

附图标记清单

1   显微镜

2   计算机单元

3   校准载物台

4   用于确定设备坐标的单元

5   显微镜台

6   载物台

7   物镜

8   显微图像

9   载物台上的校准十字、校准点

10  监视器

11  摄像机

12  (计算机-)鼠标

P   成像点

φ  变换规则

X,Y,Z  在DICOM坐标系中的坐标,参考坐标

x,y,z  在显微镜系统中的坐标,设备坐标

E1,…,E6  校准十字,校准点,参考点

高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈