一种基于GDI拦截的表格识别方法技术

技术编号:19023321 阅读:34 留言:0更新日期:2018-09-26 19:02
本发明专利技术提供一种基于GDI拦截的表格识别方法,该方法包括步骤为对表格窗体进行定位,抓取窗体内表格的文本和线条,对多余线条进行排除,对表格边框进行识别和或者自定义边框,还原系统表格文本和表格格式,获取单元格文本内容,本发明专利技术方法通过所有GDI文本和线条组成的表格获取信息系统的表格内容和格式,通过配置支持无合并单元格和存在合并单元格表格,达到可根据任意单元格获取其文本。

【技术实现步骤摘要】
一种基于GDI拦截的表格识别方法
本专利技术涉及图像处理
,特别涉及一种基于GDI拦截的表格识别方法。
技术介绍
随着我国医院数字化、信息化建设的发展,医院信息管理系统(HIS)、检验信息系统(LIS)、影像系统(PACS)、体检管理系统(PEIS)、电子病历(EMR)等各种医疗子系统已被医院所采用。以往医院需要对各系统的数据进行关联并在院内共享,以方便在各个科室提取并分析数据。在现有的互联网时代,如能够将数据正确地提取、重构并利用互联网传输,将极大地提高医疗资源的灵活配置,使远程会诊、远程医疗成为一种常见的、低成本的、便捷的就诊手段。在现有技术中,通过窗口采集可以将在Windows系统中运行的各应用的窗口图像采集下来,并保存为位图。如果只采集某一时间点的窗口图像,则可以获得静止的、该时间点的窗口图像的截图;如果采集连续时间段内的窗口图像,则可以获得动态的、该连续时间段内的窗口图像的视频。在进行窗口图像的采集时,可以基于Windows图形设备接口(GraphicsDeviceInterface,GDI)应用程序编程接口(ApplicationProgrammingInterface,API)进行窗口图像采集,或者也可以采用特定类型的API进行窗口图像的采集。具体的,在基于WindowsGDIAPI进行窗口图像的采集时,需要先获得指定窗口的上下文句柄(HandleofDeviceContext,HDC),再利用GDIAPI的BitBlt等函数,将窗口图像拷贝到指定位置。该方法只能采集到基于GDI渲染的窗口图像,而很多应用的窗口图像并不是基于GDI渲染的,比如很多游戏应用、视频应用等并不是基于GDI渲染的。因此采用该方法采集窗口图像时,只能采集到基于GDI渲染的应用的窗口图像,无法采集到非基于GDI渲染的应用的窗口图像。对于医疗信息系统中,在远程会诊、远程医疗系统开发的过程中与各个医院的子系统做接口,进行数据的采集,并转换为自身可以识别的数据在远程会诊的过程中提供给受邀方查阅,非常必要。医疗信息系统软件界面通常表现为窗口表格形式,一般针对固定结构的表格数据抓取,较为常见地是通常利用模板表格图把固定单元的相对位置描述出来,作为表格结构的先验信息,然后利用这些信息指导数据提取,可以大大提高表格数据提取的准确率和速度,方便批量化处理。然而不同厂家设计的医疗信息系统软件界面存在有很大不同,由于表格结构复杂多样,很难找到一种通用的提取框架,而且资料传输过来的数据存在很多重复的数据,无用的数据,错误的数据,导致数据的不完整性,无法具体完成数据的结构化和清晰化,使得数据展示和分析难度很大。
技术实现思路
为了解决现有技术的问题,本专利技术提供了一种基于GDI拦截的表格识别方法。本专利技术具体技术方案在于,包括如下步骤:a)根据系统对表格的窗体进行定位;b)配置GDI抓取窗体内表格的文本和线条,利用windowsAPI钩挂,用GDI函数对系统进行拦截文本和线条;c)配置排除异常线条,对表格的多余线条进行排除;d)配置识别边框或者自定义边框,对表格边框进行识别和或者自定义边框;e)还原系统表格文本和表格格式;f)配置单元格,获取单元格内文本内容。进一步地,步骤f)所述单元格,支持无合并单元格和存在合并单元格。进一步地,所述方法针对所有GDI文本和线条组成的表格,可对其中内容进行识别和分析。本专利技术提供的技术方案带来的有益效果是:本专利技术采用windowAPI钩挂,通过所有GDI文本和线条组成的表格获取信息系统的表格内容和格式,通过配置支持无合并单元格和存在合并单元格表格,达到可根据任意单元格获取其文本。具体实施方式本专利技术实施例提供一种基于GDI拦截的表格识别方法,该方法包括:1.根据系统对表格的窗体进行定位,例如:hWndlnsertAfter:在z序中的位于被置位的窗口前的窗口句柄。该参数必须为一个窗口句柄,或下列值之一:HWND_BOTTOM:将窗口置于Z序的底部。如果参数hWnd标识了一个顶层窗口,则窗口失去顶级位置,并且被置在其他窗口的底部。HWND_NOTOPMOST:将窗口置于所有非顶层窗口之上(即在所有顶层窗口之后)。如果窗口已经是非顶层窗口则该标志不起作用。HWND_TOP:将窗口置于Z序的顶部。HWND_TOPMOST:将窗口置于所有非顶层窗口之上。即使窗口未被激活窗口也将保持顶级位置。2、配置GDI抓取窗体内表格的文本和线条,例如获得当前屏幕的大小,计算图片的大小,如果图片的长度和宽度超过目前屏幕的大小,根据屏幕的大小创建一个以当前屏幕为模板的图像。x:以客户坐标指定窗口新位置的左边界。y:以客户坐标指定窗口新位置的顶边界。cx:以像素指定窗口的新的宽度。cy:以像素指定窗口的新的高度。配置排除异常线条。根据系统界面情况,排除异常线条,形成标准化表格。配置识别边框或者自定义边框。例如,选用一个单独的view实现,在这个view中按位置摆放相应的控件并设置view的layer的borderColor和borderWidth。再以view为对象,贴到cell中。会发现,当cell中出现多个楼层时,上下相邻的楼层相邻处的线,是两个楼层borderWidth的2倍,显的线条粗,不协调。删除通过borderColor,borderWidth设置的layer边框,通过向view的layer上添加上下左右方向的1像素的layer实现边框的设置。配置支持无合并单元格和存在合并单元格,如果存在合并单元格,进行具体配置。配置单元格,获取单元格内任意文本。例如,根据指定内容的位置的不同,可以选择使用MID或MIDB、RIGHT或RIGHTB、LEFT或LEFTB等文本提取指定的文字内容。MID或MIDB用途:MID返回文本串中从指定位置开始的特定数目的字符,该数目由用户指定。MIDB返回文本串中从指定位置开始的特定数目的字符,该数目由用户指定。MIDB函数可以用于双字节字符。语法:MID(text,start_num,num_chars)或MIDB(text,start_num,num_bytes)。参数:Text是包含要提取字符的文本串。Start_num是文本中要提取的第一个字符的位置,文本中第一个字符的start_num为1,以此类推;Num_chars指定希望MID从文本中返回字符的个数;Num_bytes指定希望MIDB从文本中按字节返回字符的个数。如性别“男”、“女”。本文档来自技高网
...

【技术保护点】
1.一种基于GDI拦截的表格识别方法,其特征在于:a)根据系统对表格的窗体进行定位;b)配置GDI抓取窗体内表格的文本和线条,利用windows API钩挂,用GDI函数对系统进行拦截文本和线条;c)配置排除异常线条,对表格的多余线条进行排除;d)配置识别边框或者自定义边框,对表格边框进行识别和或者自定义边框;e)还原系统表格文本和表格格式;f)配置单元格,获取单元格内文本内容。

【技术特征摘要】
1.一种基于GDI拦截的表格识别方法,其特征在于:a)根据系统对表格的窗体进行定位;b)配置GDI抓取窗体内表格的文本和线条,利用windowsAPI钩挂,用GDI函数对系统进行拦截文本和线条;c)配置排除异常线条,对表格的多余线条进行排除;d)配置识别边框或者自定义边框,对表格边框进行识别和或者自定义边框;e...

【专利技术属性】
技术研发人员:梁威廖上平
申请(专利权)人:长沙博为软件技术股份有限公司
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1