医疗内窥镜是目前常用的一种临床诊断工具,医生通过内窥镜能直接观察到人体内部器官的病变情况,如溃疡,肿瘤等,还可以利用它进行微创的外科手术,在医学界应用广泛。
电子内窥镜主要由光学镜头、信息采集系统、监视器等组成。电子内窥镜的成像原理是:信息采集系统装备的光源发出的光信号,经镜头内的导光纤维导人人体体腔,经体腔内表面反射后,被镜身前端装备的微型图像传感器CCD接收,CCD将光信号转换成电信号,再通过导线输送到信息采集系统,信息采集系统将图像信号处理后显示在监视器屏幕上。
本项目开发的医疗内窥镜影像系统可与多种型号的消化系统内窥镜配套使用,且可以在胃镜与肠镜之间灵活切换。
1 系统设计与实现
本系统的硬件构成包括:消化系统内窥镜(胃镜/肠镜),监视器,CCD,内窥镜影像系统,视频采集卡,彩色打印机,脚踏开关,硬件结构如图1所示。
医疗内窥镜影像系统的功能大致为:影像实时显示与采集、数字图像预处理、病例信息的管理、典型病例库的维护、诊断报告的生成与维护等。其具体实现如下:
(1)影像实时显示。
内窥镜系统的影像数据来自镜头上的CCD,CCD将镜头获取的光信号转换为电信号,经导线传送到视频采集卡,视频采集卡将电信号转换为计算机可以理解的数字信号,方便影像的实时显示与获取。
本系统使用的视频采集卡为天敏公司生产的SDK3000,PCI卡为单卡1块SAA7130芯片,可以传输4路Video和1路SVideo实时视频信号。在机器性能允许的情况下可实现单机多卡运行。SDK3000支持多制式的视频源(PAL制、NTFS制、SECAM制)。
使用1块卡输出的帧率,视频源50 Hz输出的帧率最大为25帧,视频源60 Hz输出的帧率最大为30帧。
(2)影像采集。影像采集包括单帧数字图像的采集和视频的录制。
单帧图像采集有两种方式:一种是操作者在计算机旁使用鼠标采集;另一种是操作者使用脚踏开关采集。脚踏开关连接在计算机的串口,每次触发脚踏开关,计算机的串口会接收到一串16进制字符串,然后执行单帧图像采集的功能。
从视频采集卡获取的图像数据为yuv格式,而大部分图像处理是基于RGB颜色空间的,所以要进行颜色空间的转换。
除支持全屏采集外,还可以手动设置采集区域。用户可用鼠标圈选出一个矩形区域为有效区域,有效区域外的图像被舍弃。实现方法是根据用户选择的矩形区域和图像的原始尺寸计算出图像的有效尺寸,截取有效数据,进行Yuvtorgb转换,将转换后的数据加上文件头和信息头组合成一幅有效图像。
录制视频一方面可用于科研教学。另一方面可以帮助医生采集遗漏的病变图像,视频一般采用XviD MPEG-4编码方式,帧率为25。
(3)视频回放及2次采集。
视频回放有多种方法,本系统采用VC中已注册的Windows Media Player组件,支持视频播放、暂停、快进等。
2次采集指从视频流中采集可能遗漏的病变图像。由于视频是基于XviD MPEG-4编码方式压缩的,从中获取单帧图像需要解码。使用avi的API函数可以自动调用xvid解码器。
PGETFRAME pGF=AVIStreamGetFrameOpen(pAStream,NULL);
这种方式获取的是原始xvid格式的数据,与期望不符。
获取RGB格式数据的具体步骤为:
Step1获取格式大小;
Step2获取格式信息头;
Step3修改信息头的压缩方式和缓冲区大小;
Step4将修改后的信息头传入上式的第2个参数,得到的返回值即为RGB格式数据。
(4)病历管理。
在实际使用中,同一时间可能有多个人挂号,操作者可以将多个病患的基本信息录入系统,然后再按顺序安排内窥镜检查。因此系统提供了4个病历导航键,“第一个”,“前一个”,“后一个”,“最终”,方便医护人员查看。
另外,本系统还提供了多种方式查看历史病历。例如可以按姓名,检查号等关键字查询病历,还可以由诊断名进行模糊查询,统计查询结果。
(5)图像预处理。
单帧图像预处理使用了图形库——CxImage,如图2所示。CxImge与其他的优秀的图形库如OpenIL,FreeImage,PaintLib等相比,不仅拥有强大而齐全的功能,而且是完全开源的。对于数字图像处理,不仅能灵活地使用它完成陕速开发,而目能学习其内部的核心实现代码。
利用CxImage库,不仅可以进行图像格式间的灵活转换,而且图像的基本预处理变得很容易,如亮度、色度、饱和度的调整,图像的缩放和旋转等。
(6)报告生成与维护。
—份图文并茂的诊断报告由病人的基本文字信息,图像信息和诊断结果组成。基本文字信息包括:病人姓名,住址,电话,职业,主治医生,主诉,术前准备等,这类信息需要医护人员手工录入。图像信息指病变图像或视频,由于数据库容量有限,医生从采集的所有图像中选择16张存入数据库,其中4张将打印在诊断报告上。诊断结果包括病人消化系统各个部位的健康状况描述,以及诊断结果,这部分信息可以手工录入,也可以在合适的典型病例上进行适当的修改。若医生在病人体内提取了活检样本,还需要记录活检样本的部位名称和块数。诊断报告产生后,就可以预览和打印。