高 鹏 廖琪梅*
外伤伤口面积计算和存储系统的设计与实现
高 鹏① 廖琪梅①*
目的:设计外伤伤口面积的计算和存储面积值系统。方法:在visual c++ 6.0开发平台下运用图像处理的相关技术计算得到伤口的面积;采用ADO方式访问Access 2003数据库,将面积数据存入数据库,应用SQL语言对库中信息进行检索。结果:由动物模型测量及保存的结果表明,系统达到了预期效果,实现了快速计算伤口面积并保存检索面积等信息的功能。结论:该系统完全适合计算和保存伤口面积值,并可以对面积信息进行检索,能够为医生的诊疗提供有效数据,为患者就医带来方便。
图像;伤口面积;ADO;查询
[First-author’s address]Department of Biomedical Engineering, The Fourth Military Medical Universityl, Beijing 100039, China.
表面创伤是一种常见的外伤,创伤的愈合情况受到医生和患者的高度关注。表面创伤的治疗需要根据伤口愈合情况制定治疗方案和手术计划,患者了解伤口愈合情况后有效地配合治疗。伤口面积在一定程度上可以反映伤口的愈合程度,但仅凭医生肉眼观察或经验估算伤口的面积,其结果不准确。现有的计算机辅助测量方法是在伤口旁贴一张标准面积贴,通过对比标准面积计算出伤口面积,而该方法会增加患者的感染概率[1]。为此,本研究设计出一种伤口面积计算方法和储存系统,能够在不接触患者皮肤、伤口的情况下方便地测量和计算出伤口的面积,同时将患者的相关信息存储到数据库中,方便医生查询,并能够连续记录多次测量结果,以便医生对伤口愈合情况进行比对,观察治疗效果,有针对性地实施治疗。
伤口面积计算方法和储存系统设计主要分为两大模块:图像处理模块和数据管理模块。图像处理模块主要是完成图像格式的转换和测量面积;数据管理模块实现数据存储、查询等功能。该系统框架如图1所示。
图1 伤口面积计算方法和储存系统框架图
1.1 图像处理模块
(1)24位彩色图像转灰度图像。由于目前多数照相机所得图像是24位彩色,为方便后续阈值分割以及面积计算,先将其转化为灰度图像。彩色图像每个像素的R、G、B3个基色分量各不相同,对于所有像素点按照红色0.299、绿色0.587、蓝色0.114的比例得到新的像素值,将原彩色图像对应点像素值用计算得到的像素值替换即可得到相应的灰度图像[2]。
(2)阈值分割[3]。为计算伤口面积而在图像上将伤口组织与正常组织区分开。由于伤口组织和正常组织在颜色上具有很大区别,其灰度图像的灰度值存在较大差异。利用这一差异设定合理的阈值便可将二者区分。在软件实际操作时为减少输入阈值之繁琐,采用滑块控件,滑块调节范围设置为0~255,同时将滑块的位置即阈值显示至编辑框中,用户在使用时可通过调节滑块实时观察图像分割的情况,直至得到满意的图像[4]。
(3)计算面积。通过图像计算伤口面积的原理:在已知一个像素点所对应的图像实际大小为s,伤口面积由n个像素点组成的情况下,计算伤口面积S=s×n。具体操作如下:在得到分割后的图像之后,输入拍摄图像时照相机至物体的距离后点击伤口区域,系统由根据区域生长算法便能计算出伤口面积并将其显示于编辑框中。根据实际情况,从距伤口6~46 cm的范围内拍摄数张照片,计算出相应距离下的每个像素对应的实际大小,并拟合出一条距离像素大小关系曲线,然后将其数据存放在ruler.dat文件中,系统会自动计算出相对应的像素,进而计算出伤口面积。
区域生长算法的主要原理[5]:将具有相似性质的像素集合起来构成区域。指定一个或数个种子点作为生长的起点,然后依据一定的生长规则将种子像素周围符合生长规则的像素点划分至种子点所在的区域中重复操作而得到一个连通的区域。为验证本研究计算伤口面积方法的可行性,采用参考物法进行检验。在实验动物的伤口旁放置一个带有规则图形(1 cm×1 cm的正方形)的布条,采用计算伤口面积的方法通过软件计算出图形的面积,与实际面积比对后发现二者误差≤2%,对该方法的临床应用无影响(如图2所示)。
图2 实验动物与标准图形
(4)测试像素点大小。通过此项功能可检测ruler. dat是否在当前目录下。在程序内部设定照相机至伤口的距离为25 cm,调用void CReadView:OnZtest()函数。如果能够得到正确的像素点值,则表明其功能完整。系统界面中工具栏第2栏上从左至右依次是滑块控件、阈值选择编辑框、距离编辑框、面积显示编辑框和存入数据库按钮。左侧是ruler.dat中的距离与像素大小的关系数据。右侧用来显示处理后的图像。操作流程:读入彩色图像→进行灰度转换→阈值分割→输入照相机到伤口距离→点击伤口区域得到处理后图像并显示伤口的面积(如图3所示)。
图3 系统界面及处理后的图像
1.2 数据库管理模块
(1)数据库的选择与连接。Microsoft Access 2003是目前多数电脑中微软操作系统下所安装的数据库,根据本系统中数据库记录和字段的特点,采用Access 2003作为后台数据库,数据库设有ID,姓名,年龄,性别,伤口面积和检测时间等字段[6]。
本程序采用以ADO方式连接数据库,通过在控制面板中手动创建ODBC数据源,调用_ConnectionPtr对象打开数据库连接,再调用_RecordsetPtr对象获取记录集的方式连接数据库[7]。由于ADO是一组动态链接库,因此在使用前应先导入ADO并初始化。在工程的头文件中使用导入符号#import导入ADO库件,使用如下代码:
#import"C:program filescommon files systemadomsado15.dll" no_namespace rename ("EOF","adoEOF")。
初始化的操作是在程序应用类的InitInstance()之中使用代码AfxOleInit()对COM库初始化[8]。
(2)数据库的数据添加、删除操作。在向数据库中添加患者的伤口面积和相关信息时设计了两种方式:①通过点击“添加、删除”菜单响应,但该方式需要医生输入伤口面积,存在输入错误的可能;②点击主界面“存入数据库”按钮,该方式简单、快捷,且不存在将伤口面积数值填错的可能。与添加记录伴随的是删除记录的功能,用户只要选择相应的记录然后点击删除记录即可。“记录导航”提供了访问查看当前记录的方法,用户可查看第1条、上一条、下一条及最后一条记录。
(3)数据库的数据查询、修改操作。数据库系统的查询是不可缺少的功能。医生可通过查询患者多次检查的记录判断伤口的愈合情况,因此本系统查询功能的实现对医生诊断有重要意义。针对查询的特点,本系统采用精确查询和模糊查询兼备的查询方式。在软件设计过程中设置了多种查询关键字:ID、姓名、年龄范围、伤口面积范围及测量时间范围等,提高了查询成功的速度和概率。用户若要跟踪某个患者的伤口修复情况,只需按照姓名查询即可看到该患者的所有记录。通过模糊查询的方式,只需要输入患者的部分信息,即可将满足条件的记录显示出来,缩小了查找范围。
在选择ADO Datagrid控件进行显示记录时,默认情况下其表格宽度较大,导致数个字段不能同时显示在表格中,需要调整其宽度。为了减少操作的复杂性,在对话框初始化时根据字段的长度将表格宽度进行调整:Column.SetWidth(40)[11]。ADO Datagrid不仅可以显示所查询的数据记录,且在数据修改方面为用户提供了方便。
该系统的初始版本自2011年9月开发完毕并投入使用。阈值选择的默认值为70,图像坐标的显示以及摄像机至伤口的距离等细节均根据在使用中的实际情况进行默认设置,提高了医生的工作效率[12]。在数据库的设计上,在精确查询的基础上增加了模糊查询,完善了可供查询的项目,加快了查询速度。尽管在使用过程中需要根据实际情况进行部分设置和修改,但是本系统注重模块化设计,在许多可能修改的地方均设置默认值,因此修改过程十分方便,且不会影响整体的功能。
计算机技术与临床应用相结合极大改进了临床研究的手段,提高了临床研究的效率。本研究设计的伤口面积计算和存储系统为医生的诊断治疗提供了数字化的手段,提高了计算的速度和准确性,方便医生处理和汇总大量患者诊疗信息。
[1]赵飞,屈景辉,李飞江,等.适用于创伤修复研究的伤口面积测量系统设计[J].医疗卫生装备,2007,28(11):28-29.
[2]杨淑莹.VC++图像处理程序设计[M].2版.北京:清华大学出版社,北京交通大学出版社,2005:288.
[3]沈圆,李国勇.图像的阈值分割法设计[J].机械工程与自动化,2012,41(5):45-47.
[4]张军.Visual C++实例精通[M].北京:机械工业出版社,2009:27-28.
[5]谢凤英,赵丹培.Visual C++数字图像处理[M].北京:电子工业出版社,2008:317.
[6]孙晶晶,吴效明.基于Access数据库的家庭健康监护系统设计[J].医疗卫生装备,2012,33(3):22-23.
[7]王斌.基于VC的数据库编程设计与实现[J].电脑编程技巧与维护,2012,18(10):21-23.
[8]李震,魏铭,杨刚.VC++下基于ADO与DataGrid控件的数据库开发[J].石油仪器,2012,26(11):81-84.
[9]孙皓.VisualC++范例大全[M].北京:机械工业出版社,2009:519-523.
[10]魏林,陈磊.Datagrid控件在系统开发中的应用[J].电脑编程技巧与维护,2008,14(11):47-49.
[11]王守强,朱大铭.在VC中使用DataGrid控件[J].电脑编程技巧与维护,2002,8(1):47.
[12]孙鑫,余安萍.VC++深入详解[M].北京:电子工业出版社,2006:269.
Research on the design and accomplishment of the system of computing and storing wound area
/GAO Peng, LIAO Qi-mei// China Medical Equipment,2014,11(1):39-41.
Objective:To design a system of computing and storing wound area.Methods:Visual C++6.0 platform has been used to develop the application.With image processing and by means of ADO, the wound area can be calculated and stored in the Access 2003 databse.Results:The system has achieved the expected effect which can be proved by measuring animal model and saving reaults. It can calculate the wound area and save the relative information fast.Conclusion:This system is qualified for computing and storing wound area and can search the information stored as well. Not only can it provide doctors with accurate information,but also bring patients convenience.
Image; Wound area; ADO; Query
10.3969/J.ISSN.1672-8270.2014.01.014
1672-8270(2014)01-0039-03
R197.324
A
2013-08-29
①第四军医大学生物医学工程系 陕西 西安 710032
*通讯作者:maydlee@163.com
高鹏,男,(1990- ),本科学历,助教。第四军医大学生物医学工程系,从事生物医学图像处理工作,研究方向:生物医学工程。