4
中华眼视光学与视觉科学杂志 2015 7 月第 17 卷第 7 Chin J Optom Ophthalmol Vis Sci July 2015Vol.17No.7 DOI10.3760/cma.j.issn.1674-845X.2015.07.003 基金项目浙江省国际科技合作专项计划项目2013C24032作者单位325035 温州医科大学信息与工程学院 通信作者黄学平Email [email protected] 角膜作为眼睛屈光系统的重要组成部分其占 全眼屈光力的 70%在临床手术中角膜的特性是一 个重要的参数对眼科医生来说了解角膜表面的基 本参数有助于角膜疾病的正确诊断和合理治疗着计算机科学技术的发展用于记录和分析角膜表 面形态的医疗仪器不断问世角膜地形图分析已成 为临床的重要检查手段 [1] 多年来 Orbscan II 在眼科临床检查中应用较 Orbscan II 为非接触式光学测量采用的是水平 裂隙扫描和 Placido 盘技术能够测量角膜前后表面 基于角膜地形图仪系统的数据获取研究 与实现 岑琴 谢忠好 黄学平 摘要目的 应用 Orbscan II 角膜地形图仪系统设计开发角膜数据分析软件来自动获取角膜 数据为角膜的临床诊断提供自动分析功能方法 实验研究在现有的角膜地形图仪系统的基础上角膜数据分析软件通过 API Hook 挂接到 Orbscan 进程在检查测量角膜过程中由程序即时获取数 并通过共享内存文件的方式将数据读取到角膜数据分析软件的程序进程当中实现角膜数据的采 获取及分析结果 对获取的数据进行偏微分分析和拟合回归处理计算产生 360 条半子午线的 Q VC++6.0 开发环境下利用 OpenGL 绘图技术形象地展示了个体化角膜表面的非球面性质及形 态图形结论 角膜数据分析软件能自动获取 Orbscan II 角膜地形图仪系统中的角膜数据达到软件 开发上的无缝链实际三维角膜形态与 Q 值分更好展了角膜地形图仪系统的为角膜的进一研究提数据基础和自动分析关键词角膜地形图角膜数据获取 The research and realization of data acquisition based on corneal topography system Cen QinXie ZhonghaoHuang Xueping. The Information and Engineering School of Wenzhou Medical UniversityWenzhou 325035China Corresponding authorHuang XuepingEmail [email protected] AbstractObjective To acquire the corneal data automatically by designing and developing corneal data analysis software with the Orbscan II corneal topography systemproviding automatic analysis function for corneal clinical diagnosis. Methods Based on the existing corneal topography systemthe corneal data analysis software hooked the process of the Orbscan using API Hook. During the measurement of the corneathe program acquired the corneal data in real timeand through sharing memory filetook the data into the program process of the corneal data analysis software to realize collectionacquisition and analysis of the corneal data. Results The acquired data were carried out partial differential analysis and regression to calculate and produce Q-value of the 360 semi -meridian. It used OpenGL graphics technology to vividly demonstrate aspheric properties and morphological images of individual corneal surface in VC ++ 6.0 development environment. Conclusion The corneal data of the Orbscan II corneal topography system could be obtained automatically by the analysis programwhich achieved seamless connection of software developmentprovided the actual three-dimensional corneal morphology and Q-value distribution curve for patientsbetter extended the function of the corneal topography systemand provided the data foundation and automatic analysis function for the further study of cornea. Key wordsCorneal topographyCorneaData acquisition · 论著/眼视光新技术研发 · 394 · ·

基于角膜地形图仪系统的数据获取研究 与实现 · 的调用改为对注入到目标进程中的自定义函数的调 用,实现对 API 函数的拦截[5-6]。 Orbscan

  • Upload
    others

  • View
    26

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 基于角膜地形图仪系统的数据获取研究 与实现 · 的调用改为对注入到目标进程中的自定义函数的调 用,实现对 API 函数的拦截[5-6]。 Orbscan

中华眼视光学与视觉科学杂志

2015

7

月第

17

卷第

7

Chin J Optom Ophthalmol Vis Sci

July 2015

Vol.17

No.7

DOI

10.3760/cma.j.issn.1674-845X.2015.07.003

基金项目:浙江省国际科技合作专项计划项目(

2013C24032

作者单位:

325035

温州医科大学信息与工程学院

通信作者:黄学平,

Email

[email protected]

角膜作为眼睛屈光系统的重要组成部分, 其占

全眼屈光力的

70%

。 在临床手术中角膜的特性是一

个重要的参数。对眼科医生来说,了解角膜表面的基

本参数,有助于角膜疾病的正确诊断和合理治疗。随

着计算机科学技术的发展, 用于记录和分析角膜表

面形态的医疗仪器不断问世, 角膜地形图分析已成

为临床的重要检查手段

[1]

多年来,

Orbscan II

在眼科临床检查中应用较

多。

Orbscan II

为非接触式光学测量,采用的是水平

裂隙扫描和

Placido

盘技术,能够测量角膜前后表面

基于角膜地形图仪系统的数据获取研究

与实现

岑琴 谢忠好 黄学平

【摘要】 目的 应用

Orbscan II

角膜地形图仪系统,设计开发角膜数据分析软件来自动获取角膜

数据,为角膜的临床诊断提供自动分析功能。 方法 实验研究。 在现有的角膜地形图仪系统的基础上,

角膜数据分析软件通过

API Hook

挂接到

Orbscan

进程, 在检查测量角膜过程中, 由程序即时获取数

据,并通过共享内存文件的方式,将数据读取到角膜数据分析软件的程序进程当中,实现角膜数据的采

集、获取及分析。结果 对获取的数据进行偏微分分析和拟合回归处理,计算产生

360

条半子午线的

Q

值。在

VC++6.0

开发环境下,利用

OpenGL

绘图技术,形象地展示了个体化角膜表面的非球面性质及形

态图形。 结论 角膜数据分析软件能自动获取

Orbscan II

角膜地形图仪系统中的角膜数据,达到软件

开发上的无缝链接,提供实际三维角膜形态与

Q

值分布图,更好地扩展了角膜地形图仪系统的功能,

为角膜的进一步研究提供数据基础和自动分析功能。

【关键词】 角膜地形图; 角膜; 数据获取

The research and realization of data acquisition based on corneal topography system

Cen Qin

Xie Zhonghao

Huang Xueping. The Information and Engineering School of Wenzhou

Medical University

Wenzhou 325035

China

Corresponding author

Huang Xueping

Email

[email protected]

Abstract

Objective To acquire the corneal data automatically by designing and developing

corneal data analysis software with the Orbscan II corneal topography system

providing automatic

analysis function for corneal clinical diagnosis. Methods Based on the existing corneal topography

system

the corneal data analysis software hooked the process of the Orbscan using API Hook.

During the measurement of the cornea

the program acquired the corneal data in real time

and

through sharing memory file

took the data into the program process of the corneal data analysis

software to realize collection

acquisition and analysis of the corneal data. Results The acquired data

were carried out partial differential analysis and regression to calculate and produce Q-value of the

360 semi-meridian. It used OpenGL graphics technology to vividly demonstrate aspheric properties

and morphological images of individual corneal surface in VC ++ 6.0 development environment.

Conclusion The corneal data of the Orbscan II corneal topography system could be obtained

automatically by the analysis program

which achieved seamless connection of software development

provided the actual three-dimensional corneal morphology and Q-value distribution curve for patients

better extended the function of the corneal topography system

and provided the data foundation and

automatic analysis function for the further study of cornea.

Key words

Corneal topography

Cornea

Data acquisition

·论著/眼视光新技术研发·

394

· ·

Page 2: 基于角膜地形图仪系统的数据获取研究 与实现 · 的调用改为对注入到目标进程中的自定义函数的调 用,实现对 API 函数的拦截[5-6]。 Orbscan

中华眼视光学与视觉科学杂志

2015

7

月第

17

卷第

7

Chin J Optom Ophthalmol Vis Sci

July 2015

Vol.17

No.7

地形以及整个角膜厚度。 在患者密切配合的情况下

重复性较好。

Orbscan II

的裂隙扫描装置由发射裂

隙光的

2

个投射头构成, 通过左右各

20

下的裂隙,

45

度角将光源投射到角膜表面,每个裂隙切面可

获取

240

个数据,对获取的数据进行分析,产生可重

复调用的诊断图像, 以显示角膜前后表面高度、散

光、最薄点、曲率、全厚度、直径以及瞳孔直径等

[2-3]

Orbscan II

角膜地形图仪系统能较早发现眼角

膜形态的异常, 且能同时显示角膜前后表面形态,

给角膜疾病的诊断、 治疗带来了极大的参考价值。

但有文献提到

Orbscan

检测厚度的精确性并不高,

后表面测量值不及前表面测量值精确

[4]

;又由于

OrbscanⅡ

采用裂隙扫描和

Placido

盘技术, 给出的

是角膜前表面的图像,而后表面的图像是通过前表

面综合评估得出的

[3]

,为了更好地分析角膜前后表

面的形态, 临床医生需手工摘录角膜地形图仪上检

测到的每一个点的数据,然后利用这些数据做分析,

工作量大且效率低,不利于快速诊断,因此亟需一种

能对

Orbscan II

获取的数据进行快速分析的技术,

方便临床科研人员对角膜数据进行诊断和研究。 鉴

于此需求, 我们针对

Orbscan II

角膜地形图仪的原

理, 利用

Hook

技术实时截获角膜地形图仪检测过

程中产生的数据, 为角膜地形图仪的二次开发提供

了技术支持。

1 Hook

技术及自编进程截获数据

1.1 Hook

技术概述

Hook

(钩子)是

Windows

中提供的一种用以替

DOS

下“中断”的系统机制。对特定的系统事件进

Hook

后,一旦发生已

Hook

事件,对该事件进行

Hook

的程序就会受到系统的通知,这时程序就能在

第一时间对该事件做出响应。

Hook

实际上是一个处

理消息的程序段,通过系统调用,将其挂入系统。 每

当特定的消息发出, 在没有到达目的窗口前,

Hook

程序就先捕获该消息, 亦即

Hook

函数先得到控制

权。 这时

Hook

函数就可以加工、处理该消息,也可

以不作处理而继续传递该消息, 还可以强制结束消

息的传递。

1.2 API Hook

技术在数据获取的实现

API Hook

技术是一种用于改变

API

执行结果

的技术,通过

Hook

“接触”到需要修改的

API

函数入

口点,改变它的地址指向特定的代码。

Windows

下的

每个进程都有自己的地址空间, 进程只能调用对应

的地址空间中的函数, 故在调用

API

函数之前,必

须将一个用来代替

API

执行的自定义函数的执行

代码注入到目标进程, 然后再将目标进程对该

API

的调用改为对注入到目标进程中的自定义函数的调

用,实现对

API

函数的拦截

[5-6]

Orbscan

角膜地形图仪系统是基于

Windows

NT

操作系统平台的应用程序。 通过对

Orbscan

系统

的分析, 发现系统在绘制角膜地形图的时候调用了

GDI32

下的

createDiBitmap

函数, 其参数中包含了

角膜地形图仪的绘图数据, 因而利用角膜数据分析

软件通过

API Hook

挂接到

Orbscan

进程,代码注入

流程如图

1

所示。

Orbscan

的目标

API

函数发生调用后, 分析

程序第一时间获取了敏感数据。 通过共享内存文件

的方式, 将敏感数据读取到角膜数据分析软件的程

序进程当中,具体流程如图

2

所示。

1

)实现一个包含和

createDiBitmap

函数结构

一致的

MycreateDiBitmap

函数的

dll

,通过远程注入

的方式 ,将

dll

插入到

Orbscan

进 程当中 ,修改

orbscan

进程的

IAT

,将

createDiBitmap

的跳转地址

1 API Hook

入代码流程图

2

分析程序从

Orbscan II

获取数据流程图

395

· ·

Page 3: 基于角膜地形图仪系统的数据获取研究 与实现 · 的调用改为对注入到目标进程中的自定义函数的调 用,实现对 API 函数的拦截[5-6]。 Orbscan

中华眼视光学与视觉科学杂志

2015

7

月第

17

卷第

7

Chin J Optom Ophthalmol Vis Sci

July 2015

Vol.17

No.7

指向

dll

中的目标函数

MycreateDiBitmap

2

)当程序调用

createDiBitmap

,首先将调用

MycreateDiBitmap

3

MycreateDiBitmap

获取到数据后,通过判断,

剔掉无关的数据,得到了

DF

differential

,指实际曲

面各个检测点与理想球面顶点的高度差)的数据。

此时,

DF

数据虽然得到,由于

dll

仍然在

orbscan

程当中,其他进程依然无法读取。这里采用内存共享

技术,取得

MycreateDiBitmap

得到

DF

数据。

2

对截获数据的分析

2.1 Orbscan II

角膜地形图仪系统的彩带条

Orbscan II

角膜地形图仪系统中, 角膜上不

同曲率半径采用不同的颜色。 暖色代表屈光力强的

部位,冷色代表屈光力弱的部位,使角膜地形图仪显

示的结果十分直观醒目。 颜色值与对应的

DF

值如

3

所示。

从上图可以看出,每种颜色对应不同的

DF

值,

当前

Orbscan II

版本默认为

35

级颜色带, 对应的

DF

值精度为

0.005

,如颜色为

RGB

0

220

0

)彩条

DF

值为

0

2.2

获取

DF

通过

API Hook

获取

Orbscan II

中的角膜绘图

数据, 根据对绘图数据和彩带条的比较, 可以取得

DF

的数据。 角膜的

DF

值存储在大小为

250×250

数组里,数据是逐行排列的,有效数据范围在

-0.08~

0.08

之间,其余一般为无效数据,处理的时候可以忽

略,图

4

DF

值对应的图像数据。

根据颜色带,可以求出角膜图像每点对应的

DF

值,由于

Orbscan II

是按行进行扫描的,所有取出来

的值也是以行为单位,且每行取

250

个值,每个角膜

250

行,存储在

DF[250][250]

数组中。 为了更符合

医生诊断的习惯,对获取的数据进行坐标转换,并计

算得到

360°

子午线上的

DF

值如下表

1

所示。

利用已求得的

DF

值, 根据算法将其转换成坐

标,具体方法将在后续研究中介绍。

参考文献

[7]

介绍了正常国人角膜形态的二次

曲线数学模型,提出在笛卡尔坐标上,角膜子午线截

痕二次曲线以

x

关于

z

的函数公式为:

x

2

=a

1

z+a

2

z

2

。根

据刚已求出的坐标值,取

2

个点建立方程组,即可求

得各子午线在新坐标系截痕的二次曲线方程的

a

1

a

2

,继而利用文献

[7]

[8]

中的公式求出

Q

值和各

点的正切曲率半径,以供临床诊断所用。

3 Orbscan II

角膜地形图仪系统

中颜色值与对应

DF

4

角膜

DF

值对应的图像数据

子午线度数 对应的

DF

值(

20

个值)

0° 0.000 000 0.015 000 0.015 000 0.010 000 0.010 000 0.005 000

……

1° 0.000 000 0.015 000 0.015 000 0.010 000 0.010 000 0.005 000

……

2° 0.000 000 0.015 000 0.015 000 0.010 000 0.010 000 0.005 000

……

…… …… …… …… …… …… …… ……

357° 0.000 000 0.015 000 0.015 000 0.010 000 0.010 000 0.005 000

……

358° 0.000 000 0.015 000 0.015 000 0.010 000 0.010 000 0.005 000

……

359° 0.000 000 0.015 000 0.015 000 0.010 000 0.01 000 0.005 000

……

1

子午线

/DF

值表

注:

DF

指实际曲面各个检测点与理想球面顶点的高度差

396

· ·

Page 4: 基于角膜地形图仪系统的数据获取研究 与实现 · 的调用改为对注入到目标进程中的自定义函数的调 用,实现对 API 函数的拦截[5-6]。 Orbscan

中华眼视光学与视觉科学杂志

2015

7

月第

17

卷第

7

Chin J Optom Ophthalmol Vis Sci

July 2015

Vol.17

No.7

5

角膜三维图像展示图

3

对截获数据的应用

现代医学十分重视医学信息的可视化, 也有很

多人尝试通过手工获取的数据进行角膜的三维重

建。三维图像不仅提高了医疗诊断的水平,而且还在

手术规划、医学教育、医疗设备的设计与研制等领域

中发挥着巨大作用。 本分析软件通过与

Orbscan II

角膜地形图仪系统的无缝衔接, 自动实现数据的采

集、获取,并对获取的数据进行偏微分分析和拟合回

归处理,计算产生

360

条半子午线的

Q

值,在

VC++

6.0

开发环境下,利用

OpenGL

绘图技术,绘制曲率

半径为

7.7 mm

的理想半球面,再根据

DF

值的分布

情况对图形进行上色, 形象地展示个体化角膜表面

的非球面性质及形态图形,如图

5

所示。

在分析软件中, 可以对角膜进行

360°

全方位的

查看, 为各种角膜屈光手术或角膜接触镜的个体化

设计提供角膜表面形态的信息,不容易漏诊,可以做

到早期发现、 早期诊断, 为圆锥角膜的诊断提供客

观、直接的依据。 后续工作将根据

360

条半子午线产

生的曲线方程绘制由对应曲线产生的实际三维图

形,并给出相应的

Q

值分布图,更好地展示角膜的个

体特征,如图

6

所示,其中

350°~0°

范围

Q

值最大。

4

总结

本研究建立在现有的角膜地形图仪系统的基础

上, 采用数据共享的方式, 自动实现角膜数据的采

集、获取,达到软件开发上的无缝链接,并采用面向

对象的编程方法(

VC++

)和基于

Windows

的通用图

形类库, 形象地展示个体化角膜表面的非球面性质

及形态图形,自动、快速地为每一位被检者提供实际

三维角膜形态与

Q

值分布图,更好地扩展了角膜地

形图仪系统的功能, 为角膜的进一步研究奠定了数

据基础。

参考文献:

[1]

张艳玲,施明光

. Orbscan

角膜地形图系统的临床应用

[J].

中国

中医眼科杂志,

2004

14

2

):

114鄄117.

[2]

杨亮,乌云,金宝泉

.

圆锥角膜早期诊断的研究进展

[J].

临床眼

科杂志,

2013

21

6

):

560鄄563.

[3] Cairns G

McGhee CN. Orbscan computerized topography

attributes

applications and limitations [J]. J Cataract Refract

Surg

2005

31

1

):

205鄄220.

[4] Kawana K

Miyata K

Tokunaga T

et al. Central corneal

thickness measurements using Orbscan II scanning slit

topography

noncontact specular microscopy and ultrasonic

pachymetry in eyes with keratoconus[J]. Cornea

2005

24

8

):

967鄄971.

[5]

舒敬荣,朱安国,齐善明

. HOOK API

时代码注入方法和函数重

定向技术研究

[J].

计算机应用与软件,

2009

26

5

):

107鄄110.

[6]

徐江峰,邵向阳

.

基于

HOOK API

技术的进程监控系统设计与

实现

[J].

计算机工程与设计,

2011

32

4

):

1330鄄1332.

[7]

施明光,王波

.

正常国人全角膜数字模型的建立

[J].

中华眼科杂

志,

2007

43

8

):

694鄄697.

[8]

陈如利,王若洁,王波,等

.

正切曲率半径对高度近视眼角膜表

Q

值计算及特性分析

[J].

中华眼视光学与视觉科学杂志,

2011

13

1

):

34鄄38.

(收稿日期:

2015鄄01鄄26

(本文编辑:贾建敏,毛文明)

6

角膜

Q

值分布图

397

· ·