基于ActiveMIL的数字化X射线图像采集系统的设计
2015-01-13陈璞
陈璞
(江苏海明医疗器械有限公司,江苏扬州225101)
基于ActiveMIL的数字化X射线图像采集系统的设计
陈璞
(江苏海明医疗器械有限公司,江苏扬州225101)
本文介绍了X射线数字成像技术,阐述在使用影像增强器的诊断设备中,数字化X射线图像采集系统的硬件组成。设计了基于ActiveMIL组件的X射线图像采集系统软件,其编程语言为VC++/CLR,实现了图像的实时显示、单帧采集、序列采集、畸变校正处理、分析、存档等功能。结果表明:所设计的图像采集系统工作稳定,采集图像清晰,实现了设计的要求。
X射线;数字成像;图像采集;ActiveMIL
0 引言
德国物理学家伦琴发现X射线至今已有一百多年历史。这期间X射线设备迅速发展,放射条件日臻完善,放射技术日新月异。特别是近几年来,随着计算机、图像处理及相关技术的发展,数字成像技术得到了前所未有的发展。数字成像技术内容广泛,技术炯然,原理各异,这些成像技术有一个共同的特点,即以计算机为基础,使图像信息数字化,我们可以尽可能地对其实施图像信息后处理,这使医学影像技术发生了巨大的变化。
X射线数字成像技术使用的探测器主要包括平板探测器和影像增强器两种设备。平板探测器可以将X射线信息直接数字化,不存在任何的中间过程,数字图像不仅可以方便地将图像显示在监示器上,而且可以进行各种各样的图像后处理。但因平板探测器价格昂贵,目前常规的X射线数字成像大部分还是使用影像增强器,其价格比使用平板探测器低廉,而且便于对老式的X射线机进行数字化升级。
本文主要讨论在使用影像增强器的诊断设备中,数字化X射线图像采集系统的设计。
1 系统硬件组成
本系统主要由泰雷兹12寸影像增强器(TH59432)、CCD摄像机 (TH8740-012)、计算机、图像采集卡 (Matrox Meteor-II/Digital)组成。
系统工作原理如图1所示:来自球管的X射线信号通过患者,被影像增强器转换为亮度很高的可见光图像,通过摄像机转换成电信号,经过数字化处理后输出高达每秒30帧,分辨率为1000× 1000的数字视频信号,再通过计算机采集及处理后用传送到监视器,显示出人体各部位的组织结构图像。
图1 系统工作原理
系统中的TH8740-012摄像机是专门设计用于医疗图像链中X射线影像增强器的CCD摄像机。它针对透视和数字放射成像进行了优化,噪声低、动态范围宽。它还包括了一个处理控制单元(PCU),能提供实时透视状态下的高清图像处理功能。它可以同时输出的模拟视频信号和12位数字视频信号,可以通过屏幕显示 (OSD)和RS232串口来实现简单的设置和灵活的图像处理。
TH8740-012的主要参数如下: (1)可输出高达30逐行帧/秒,1000×1000像素的12位数字视频信号;(2)连续,脉冲,点片下的内部或外部同步;(3)递归滤波器、末帧图像保持、伽玛校正、阴影校正、边缘增强、水平和垂直图像反转、圆消隐等图像处理功能;(4)LVDS接口,输出15路并行的成对差分信号。
Matrox Meteor-II/Digital是Matrox MeteorⅡ高性能低价格系列采集卡中的一款。它可以用RS-422或LVDS差分信号标准,采集黑白/分量RGB,面阵/线阵信号。Matrox Meteor-Ⅱ/Digital将功能强大的函数扩展性能集成到了采集卡上,可以构建功能强大,价格低廉,基于PC的图像系统。
其主要特点如下: (1)PCI或PC/104-Plus格式视频采集卡;(2)采集数字面阵/线阵信号,包括多抽头配置; (3)32-bit宽 RS-422或LVDS接口;(4)采样率RS-422下达到25MHz,LVDS下达到40MHz;(5)可配置LUT(4个256 ×8-bit或2个4K×16-bit);(6)触发输入,时钟输出; (7)PCI总线主模式32-bit/33 MHz; (8)实时传输到系统或显卡;(9)扩展板上缓存,确保采集;(10)支持packed or planar传输彩色或多路黑白数据流;(11)RS-232串口;(12)软件包括 Matrox Imaging Library(MIL),ActiveMIL,MIL-Lite,ActiveMIL-Lite和 Matrox Inspector; (13)支持Microsoft® Windows NT®4.0,Windows®2000和Windows®XP和QNX®2。
2 软件设计
系统编程语言使用VS2005的VC++/CLR,需安装Microsoft.NET Framework 2.0及以上版本。数据库使用MicroSoft SQL Server 2000,用于病历及定位图像的管理。软件开发包采用 Matrox ActiveMIL 8组件,可以完成数字化X线图像的实时显示、单帧采集、序列采集 (可以程序设置:采集时间长短、采集帧数、时间间隔等参数)、畸变校正处理、分析、存档等功能。
ActiveMIL是以Matrox Imaging Library(MIL)为基础,所构建的一系列ActiveX控件,是一套与硬件平台无直接关联的开发工具,可供开发者在VB和 VC中快速地进行应用程序的开发。ActiveMIL除了能完成图像采集、显示、绘图、标注等基本功能外,还包括许多图像前处理和分析功能,比如测量、BLOB分析、校正、文字识别(OCR)、几何图形对比、条码读取与识别、统计分析、控件滤波、几何转换等功能。
系统由于使用了ActiveX控件,所以很大程度上降低了程序设计的难度,缩短了软件开发周期,提高了应用系统的稳定性。
ActiveMIL应用程序的结构如图2所示。即每个ActiveMIL应用程序只有一个应用控件,但可以有多个系统控件,每个系统控件下也可以有许多图像、采集卡、显示及图像处理控件。
在VS 2005的开发环境中设计ActiveMIL应用程序 (见图3),首先在工具箱中添加ActiveMIL控件,然后在窗体设计器中拖入需要的ActiveMIL控件,再在每个ActiveMIL控件的属性页中设置好组件的属性,确保属性页Error栏没有错误,最后在源程序中对ActiveMIL控件编程实现需要的功能。
图2 ActiveMIL应用程序的结构
图3 程序设计界面
(1)本系统中使用的 ActiveMIL控件定义如下:
ActiveMIL::AxMApplication^axMApplication1; //应用控件
ActiveMIL::AxMSystem^axMSystem1;//系统控件
ActiveMIL::AxMDigitizer^axMDigitizer1;//采集卡控件
ActiveMIL::AxMDisplay^axMDisplay1;//主显示控件
ActiveMIL::AxMImage^axMImageGrab;//采集图像控件
ActiveMIL::AxMImage^axMImageSave;//保存图像控件
ActiveMIL::AxMImage^axMImageDisplay;//显示图像控件
ActiveMIL::AxMImage^axMImagePrint;//打印图像控件
ActiveMIL:: Calibration:: AxMCalibration ^ axMCalibration1;//校正控件
ActiveMIL:: Calibration:: AxMCalibration ^ axMImageProcessing1;//图像处理控件
(2)初始化代码如下:
this->axMImageGrab->MaximumPixelValue =4095;//设置采集12位数字信号
axMImageGrab->SizeX=1000;//图像大小为1000×1000
axMImageGrab->SizeY=1000;
axMDigitizer1- >Image=this- >axMImageGrab;//采集的影像存入axMImageGrab控件
axMImageProcessing1- >Source1=this- >axMImageDisplay;//图像处理控件输入图像
axMImageProcessing1->Destination1=this->axMImageSave;//图像处理控件输出图像
axMDisplay1->Free();//释放控件资源
//初始化主显示控件的LUT表属性
axMDisplay1->LUT->Size=4096;
axMDisplay1->LUT->DataType=Matrox:: ActiveMIL::LUTDataTypeConstants::lutUnsigned;
axMDisplay1->LUT->DataDepth=8;//显示8位灰度图像
axMDisplay1->LUT->MaximumPixelValue =255;
axMDisplay1->LUT->NumberOfBands=1;
axMDisplay1->Allocate();//分配控件资源
axMDisplay1->Image=this->axMImage-Display;//指定显示axMImageDisplay的图像
(3)实时显示代码如下:
axMDigitizer1->GrabContinuous();
timer3->Start();//启动定时器,每秒30次,用于显示30FPS的实时图像,
//定时器timer3中的代码
axMImageDisplay->Copy(axMImageGrab);
(4)单帧采集代码如下:
axMDigitizer1->Halt();
timer3->Stop();
this->axMDigitizer1->Grab();
axMImageDisplay->Copy(axMImageGrab);
this- >axMImageProcessing1- >LUTMap (1);
this->axMImageSave->Save(picname);//采集图像存盘
(5)序列采集代码如下:
axMDigitizer1->Halt();
timer3->Stop();//停止实时显示
timer2->Start();//启动序列采集定时器,每次定时采集一帧图像,采集间隔时间在界面中设置
//定时器timer2中的代码
this->axMDigitizer1->Halt();
this->axMDigitizer1->Grab();
axMImageDisplay->Copy(axMImageGrab);
this- >axMImageProcessing1- >LUTMap (1);
this->axMImageSave->Save(picname);//采集图像存盘
图4 采集的X射线数字化图像
3 结束语
本文介绍的数字化X射线图像采集系统已在医院临床中实际使用,经用户反映系统运行稳定可靠,图像清晰、操作方便,实现了系统的设计目标。
[1]王瑞玉,刘爱武.医用数字胃肠X射线机原理构造和维修[M].北京:中国医药科技出版社,2005.
[2]高守传,姚领田.Visual C++实践与提高~数字图像处理与工程应用篇[M].北京:中国铁道工业出版社,2006.
[3]陈瑜,叶玉堂,罗颖,等.手动PCB外观检查机的图像采集与拼接[J].电子设计工程,2011,19(4): 120-123.
[4]王爽,胡炳棵,刘彩芳,等.基于Matrox Meteor-II/ Digital的图像采集系统研究 [J].电子设计工程,2012,20(3):71-74.
TP274
A
1002-2376(2015)03-0003-03
2014-12-07