您的位置: turnitin查重官网> 工程 >> 电力工程 >论拼接医学图像拼接中特点点检测算法实现

论拼接医学图像拼接中特点点检测算法实现

收藏本文 2024-04-19 点赞:19266 浏览:83439 作者:网友投稿原创标记本站原创

摘要:在医学图像处理中经常会遇到分辨率和视野的矛盾。图像拼接技术可以有效地解决这个矛盾。图像拼接效果好坏重要的是选择一个鲁棒而快速的图像配准方法。文章中首先比较了基于特征图像配准中不同特征点检测算法的优劣性,然后用C语言实现了SURF特征点检测算法,并用真实的医学图像进行试验,验证了不同医学图像特征点检测算法有效性。
关键词:医学图像拼接 特征点检测 SURF
1007-9416(2013)07-0103-02
1 引言
随着生物医学成像技术的发展,大幅度全景图像成为此领域研究和工作人员不可或缺的参考资料。医疗领域的成像设备往往都没有很大的视野,所拍摄的图像都以相对较窄的局部图片呈现。图像拼接技术能在提供高质量的局部信息的同时为观测人员提供观测目标的整体图像,更有利于医学诊断与治疗。目前在医学图像分析方面很多地方利用到图像拼接技术,如超声检查、X线成像、病理显微图像处理等。

2 基于特征图像配准中特征点检测算法讨论

图像拼接关键技术分为三个步骤:图像预处理、图像配准、图像融合。图像拼接效果好坏重要的是选择一个鲁棒而快速的图像配准方法。基于图像特征的方法目前应用最多,具有计算量小,速度快的特点,对图像畸变、噪声、遮挡等具有一定的鲁棒性。下面着重讨论几种热门的图像特征点检测算法。

2.1 自动角点检测算法

这类算法通过检测图像中的角点,然后对两幅图像的角点按照一定的配准原则进行配准,最后剔除误匹配对,得到正确的配准结果。Harris角点检测算法是典型的角点检测算法。

2.2 SIFT(尺度不变特征变换)算法[3]

SIFT(Scale Invariant Feature Tranorm)算法可以解决两幅图像之间存在平移、旋转、仿射变换等情况下的匹配问题,对任意角度拍摄的图像也具备很强的匹配能力。
特征点检测:将图像在各个方向上扩大二倍,用高斯卷积乘以图像获得LoG空间。再通过相邻层相减得到DoG尺度空间,并通过比较DoG尺度空间3维像素灰度值来确定极值。主方向分配:根据像素的梯度来确定。将360°方向分成36份进行直方图统计。特征描述符:4×4个子区域,8个方向共128维。

2.3 SURF(加速稳健特征描述)算法[4]

SURF(Speeded Up Robust Features)是加速稳健特征描述算子,与SIFT相比较算法更简单速度更快。其特点是计算积分图像。
特征点检测:通过改变Box滤波器的尺度来得到不同的尺度空间,用Hessian矩阵行列式的特征值符号来确定极值。主方向分配:根据像素在x,y方向上的Haar小波响应值来确定。将360°方向分成72份,用直方图统计每相邻60°之内的响应值之和。特征描述符:4×4个子区域,4个方向共64维。

2.4 Harris,SIFT,SURF特征点检测结果与分析

图1和表1是对经典的特征点测试图像和真实的医学图像进行检测结果。可见,Harris算子检测到特征点数量最少但是提取时间最短,SIFT算法与SURF算法检测到特征点更精确,两者数量差不多,但是SURF提取时间明显比SIFT时间短很多,因此本文选择SURF算法来进行系统设计。

3 系统设计与实现

实验环境为Intel双核I5 2.8GHz处理器,4GB内存,开发与实验软件为Visual Studio2010+OpenCV2.3.4。下面为用C语言编译的基于OpenCV的SURF特征点检测程序并用真实医学图像进行试验。
using namespace std;
void surfdetector (IplImage* img1)
{
CvMemStorage* storage = cvCreateMemStorage(0);
cvNamedWindow("Image", 1);
int key = 0;
CvMat* prevgray = 0,*image = 0, *gray =0;
IplImage* img1 = cvLoadImage("img

1.jpg");

image = cvCreateMat(img1->height,

源于:查抄袭率硕士论文www.udooo.com

img1->width, CV_8UC1);
cvCvtColor(img1, image, CV_BGR2GRAY);
CvSeq *imageKeypoints = 0,*imageDescriptors = 0;
int i;
CvSURFParams params = cvSURFParams(200,1);
cvExtractSURF(image, 0,&imageKeypoints, &imageDescriptors, storage, params);
printf("Image Descriptors: %d\n",imageDescriptors->total);
for( i = 0; i < imageKeypoints->total; i++ )
{
CvSURFPoint*r = (CvSURFPoint*)cvGetSeqElem( imageKeypoints, i );
CvPoint center;
int radius;
center.x = cvRound(r->pt.x);
center.y = cvRound(r->pt.y);
radius = cvRound(r->size*

1.2/9.*2);

cvCircle( img1, center, radius, [255 0 0 ], 1, 8, 0 );
}
cvShowImage( "Image", img1 );
cvWaitKey(-1);
cvSeImage("surfimg

1.jpg",img1);

cvDestroyWindow("Image");
}
图2(a)是医学显微图支气管刷片应用本文设计的系统进行SURF特征点检测结果,其中圆圈表示特征点的位置和尺度。图(b)是放射图像的检测结果。
4 结语
实验结果表明,本文设计的SURF特征点检测系统对纹理清晰特征明显的医学显微类图像提取特征点效果理想,精度也很高。对纹理不明显的黑白放射图特征点检测结果不是很理想,对于这样的医学图像可以采取基于区域的特征点检测方法来提取特征点。
参考文献
章毓晋.图像处理[M].清华大学出版社,2006.
赵文彬,张艳宁.角点检测技术综述[J].计算机应用研究,2006,23(10):17-19.
[3]陈靖,王泳天.基于SIFT关键点的增强现实初始化算法[J].红外与激光工程,2007,7: 158-161.
[4]刘奇,何明一.基于SURF特征匹配的图像拼接算法[J].测控技术,2009,30(9):27-31.

copyright 2003-2024 Copyright©2020 Powered by 网络信息技术有限公司 备案号: 粤2017400971号