4.2.2 算法的大致实现步骤
算法的大致实现步骤:
毕业论文:正文
学生姓名:何文俊 定稿时间:2012-05-24
首先根据图像特征用绘图工具将待修复区域用一种纯色填充;(1) 假设待修复区域已经人为标记为红色,那么对整幅图像进行扫描后,将带修复区域的点用0表示,已知图像区域的点用1表示;(2)
寻找填充前缘。条件:在填充前缘的点自身标记为1,且其上下左右四个邻近点的标记至少有一个1和一个0;(3)
计算边缘上每个点所在目标块的优先级。P(p)=C(p)*D(p)。每个像素点的初始置信度设置分别为C(p)=0(p为待填充点)和C(p)=1(p为已知点)。等照度线方向的单位向量可用图像在x和y方向的灰度梯度表示,边缘法线单位向量用做好标记的点(即用0和1分别表示了未知和已知点)的梯度表示;(4)
在所有目标块中找出最高优先级的目标块Ψp;(5)
对灰度图像进行扫描,在已知图像区域φ中找出与Ψp最匹配的模块Ψq,用于填充Ψp区域。可将Ψp中已知点的灰度值与Ψq中对应点的灰度值进行标准差运算,得出标准差结果中最小的Ψq就是我们想要的填充块;(6)
将Ψq的像素值复制到Ψp位置;(7)
修改填充后模块Ψp的置信度值:C(p)=C(q)(这里的C(q)是最佳匹配块Ψq的置信度值),同时将已填充了的点标记为1;(8)
重复(3)~(8)步骤(注:像素点的置信度已不再需要初始化);(9) 程序结束。当边缘点个数为0时,程序结束退出。(10)
图 4-1 程序运行时的部分界面截图
- 15 -
毕业论文:正文
学生姓名:何文俊 定稿时间:2012-05-24
图 4-2 界面右侧显示的图像属性
4.2.3 图像处理的结果对比
以下是作者参照软件测试的原则用不同的输入图像对程序做出的测试结果中的部分截图比较,以验证程序的可行性和执行结果。图4-3和图4-4是未损坏的完整图像,之后的组图都用一幅损坏的输入图像和经修复处理后的图像作比照。(文中采用的图像均为位图,jpg格式的可先另存为位图后再进行操作)
图 4-3 完整图像一。大小100*100.
图 4-4 完整图像二。大小480*300.
图4-5至图4-8的组合表明,本程序适用于不同颜色、不同形状的待修复区
- 16 -
毕业论文:正文
学生姓名:何文俊 定稿时间:2012-05-24
域,采用不同的模板时处理效果和运行时间都不相同(图4-7中处理后的杂质是由画笔颜色的不纯引起的,因此用9*9模板显得小了,未能修复所有点)。
(a) (b) 入图像;图(b)为处理后的输出图像。
图 4-5 图像大小100*100,采用模板大小15*15,用时5.36 s。图(a)为输
(a) (b) 入图像;图(b)为处理后的输出图像。
图 4-6 图像大小100*100,采用模板大小15*15,用时4.36 s。图(a)为输
(a) (b) 图像;图(b)为处理后的输出图像。
- 17 -
图 4-7 图像大小100*100,采用模板大小9*9,用时1.75 s。图(a)为输入
毕业论文:正文
学生姓名:何文俊 定稿时间:2012-05-24
(a) (b)
图 4-8图像大小100*100,模板大小15*15,用时2.25 s。图(a)为输入图
像;图(b)为处理后的输出图像。
图4-9、图4-10和图4-11三组图像的大小均相同,但在图像修复处理时采用了不同尺寸的模板,用15*15的模板时,可见眼睛和鼻子的特征被填充到待修复域当中了,这是因为输入图像原本就比较单调,且眼睛处的纹理特征与待修复区域十分相似,因而出现了图4-9的结果。但当我们采用3*3模板时,由于每一次迭代时几乎只填充了模板中一个像素点,而其余的点都用来做运算判断了,所以尽管输入的仍然是这幅较为单调的小图像,在用3*3模板处理后已经有十分不错的处理结果了。然而,我们能够发现,虽然图4-11的处理效果较好,但是由于每一次迭代时被真正被填充的个数变少了,导致相应的迭代次数增加,所以总的运行时间变长了。这在处理较大图像时,增加的时间复杂度会更多。
(a) (b)
图(b)为处理后的输出图像。
- 18 -
图 4-9 图像大小100*100,模板15*15,用时3.61 s。图(a)为输入图像;
毕业论文:正文
学生姓名:何文俊 定稿时间:2012-05-24
(a) (b)
图(b)为处理后的输出图像。
图 4-10 图像大小100*100,模板9*9,用时3.98 s。图(a)为输入图像;
(a) (b)
图(b)为处理后的输出图像。
图 4-11 图像大小100*100,模板3*3,用时4.29 s。图(a)为输入图像;
现在,我们增加图像的尺寸,并选取纹理结构更丰富的图像来检验我们的程序。图4-12的输入图像较之前的图像已经大了许多,因而在处理过程中的运行时间也上升了一个数量级,这主要是由于搜索的像素模块和搜索次数增加的缘故。我们看到,用25*25的模板处理时用时相对较短,待填充域中纹理特征也很明显,但是这种纹理特征并不是我们想要的结果;而在图4-14的结果中,我们采用5*5的模板,这种模板的耗时较25*25的模板只增加了少许,但处理效果却好上很多,因为用5*5的模板时每次填充的像素点较少,增加的纹理特征效果也相应弱了许多。但是,我们能够发现,使用5*5的模板填充时,待填充域出现了些许的模糊,这与基于像素点的匹配方法情况十分相似。
- 19 -