您现在的位置:首页 > 教案模板 > 正文

点是否在矩形中判断 改进投影变换和保留结构特征的拼接图像修复算法(3)

2017-12-27 15:01 网络整理 教案网

细缝段的提取,拼接图像外围黑色区域表示内容缺失的像素,包含黑色区域的最小外接矩形称之为目标矩形。首先,在目标矩形图像的四周找到一条黑色像素点水平连续或垂直连续的最长像素段[SX,n(st,ed)]。然后以最长像素段和拼接图像边界构造子图像。最后由式(12)找到子图像的最小能量细缝,向[X]表示的方向移动细缝到黑色区域一个像素单位,紧邻细缝的像素与周围像素进行二次插值。此时,之前找到的最长黑色像素段将被插入像素覆盖,实现一次图像扩充。插入细缝的过程将重复进行,直到图像覆盖全部矩形面积且没有黑色区域。但是,未充分考虑人眼对规则形状物体改变的视觉敏感。例如,当细缝多次相邻穿过图像中的直线,那么将导致交叉点处出现明显的扭曲,所以提出改进的能量函数定义。

2.2 改进能量函数的定义

式中:[e(I)]表示拼接图像的梯度能量图;[Eline]表示增强的直线段能量映射;[α]为平衡因子。采用Canny算子进行边界检测,以大小为3的Gaussian模板进行噪声移除,[Tup=100]和[Tlow=20]进行阈值处理。边界点转换为Hough空间[IH,]其中每一个像素点都与一条直线相关。阈值[THough=0.6?maxIH,]由Hough空间的最大值派生得到,选择满足条件的直线段。对于每一个候选直线段,计算直线段上像素点的总和。直线段最小长度[Tlength=]10像素。有效直线段间(缺口间)距离[Tgap=30]像素,采用梯度强度算法进行优化,提高直线段检测的精度。

2.3 改进算法描述

改进的拼接图像矩形化扩充方法,以缝雕刻算法为基础,实现对直线段的能量增强。算法流程图如图2所示。

算法具体步骤如下:

(1) 通过对参考图像和浮动图像进行特征提取,构造特征描述符并进行特征匹配,计算投影变换矩阵[H,]然后进行坐标空间变换,最后完成SPHP投影变换。

(2) 采用Canny边界检测判断显著性边界,将边界像素变换到Hough空间定位直线段位置,筛选满足条件的直线段,记录像素点位置。

(3) 判断边界是否含有黑色区域,是则表示拼接图像还有空缺的像素;通过修改的能量函数计算拼接图像的显著性图像,找到最小能量细缝段(SSC),并记录像素点的位置。

(4) 确定视觉显著直线段与最小能量细缝段交叉像素点位置,采用基于能量感知的细缝段裁剪算法扩充不规则边界的拼接图像,最后增强交叉点处像素能量值。实验中对交叉点处像素能量统一增加200,插入点周围7×7区域以2D高斯分布进行增加,避免细缝穿过紧邻插入点的像素位置。重复步骤(2)~步骤(4),直到拼接图像周围没有空缺像素,完成矩形化扩充。

3 实验结果与分析

为了验证改进算法的有效性,选取开放数据集[14]中不同类型的图像进行测试,并与传统的投影变换和直接裁剪方法进行比较,平均处理时间为10~15 s。实验工具为VS2010,OpenCV 2.4.11,硬件配置为Win7 Inter[?] CoreTM i7?3770 CPU 8 GB内存。

选择待拼接图像temple和campus,图像空间变换后二值图像如图3所示。其中图3(a)和图3(c)表示采用传统投影变换进行图像拼接,图3(b)和图3(d)表示采用改进投影变换(SPHP)进行图像拼接。传统投影变换对目标图像非重叠区域形变严重,并且拼接结果中黑色区域明显,即需要填充的像素面积较大。通过SPHP变换,减少拼接图像非重叠区域形变,图像四周黑色区域减少,使得需要扩充的像素面积减少,其中黑色区域面积所占拼接图像百分比如表1所示。

通过对拼接图像进行SPHP变换,然后采用细缝段裁剪(SSC)方法对拼接图像进行矩形化扩充,实验结果如图4所示。其中图4(a)和图4(b)表示采用传统投影变换进行图像拼接,图4(c)和图4(d)表示采用改进投影变换(SPHP)进行图像拼接,其中红色方框表示采用最大内接矩形裁剪方式获得的矩形拼接图像,损失了较多的周围像素;图4(e)和图4(f)表示在改进投影变换(SPHP)的基础上对拼接图像进行细缝段裁剪(SSC)矩形化修复结果。endprint