[转]Raanan Fattal - Image and Video Upscaling from Local Self-Examples 图像放大
转自:http://www.sigvc.org/bbs/thread-1032-1-1.html
论文链接: http://www.cs.huji.ac.il/~raananf/projects/lss_upscale/ 基于局部样本自相似性的图像和视频放大算法,可用于Super-resolution实现,如放大3倍、4倍等 算法概述: 不同于一般的图像放缩算法,如双线性插值、Cubic、各种窗口方法等,通常的方法在图像放大后会产生模糊和振铃效应,同时造成锯齿问题,本论文中的算法采用逐级放大,如3:2、4:3、5:4三种,分多步组合实现达到放大图像的结果,其主要依据是图像在放大因子较小时,在小块(如5x5)方面能得到与原图相似的结果,这样便可以补偿放大的低通滤波器损失的高频。 具体步骤: (1)已经原图A,先进行放大(如使用3:2/4:3/5:4中的任意一种,这里以3:2为例),得到放大后的图像B; (2)使用相同的放大因子2:3,反向操作于A,得到缩小后的图像C; (3)将C作用于步骤(1),得到与原图A相同大小的D; (4)计算高频,图像E=A-D; (5)将图像B划分成5x5的块,然后对每一块进行高频补偿,具体操作是对B中的某一块,在D中相应窗口如10x10中查找最相似的块(使用SAD),然后根据最小误差块的位置取到E中的相应块,直接加到B中对应块上,完成这一块的高频补偿,重复操作于所有5x5的块上; (6)重复步骤(1)-(5),直到组合后的放大因子大于或者等于初始放大因子,如果超过初始放大因子,可直接使用Cubic算法进行缩小,如放大4倍,使用组合为3:2、3:2、4:3、4:3。 相关问题: 按照作者的思路,我对这个算法进行了实现,其中用于视频纹理时,能得到比较清晰的结果,但当作用于含文字的情况下,其文字边缘的结果很差,近乎比较乱的结果,其原因是视频纹理由于差异较小,而且文字边缘往往与背景差异很大,在高频补偿时极可能得到很差的结果,同时对于较小的文字,由于第(2)(3)步得到的图像D,第(4)得到的A中的文字区域的值已经差异很大,从而导致高频补偿误差扩大。但是从作者的视频中文字效果很好,目前尚未找到能得到与作者质量一样的方法。 后续: 欢迎大家提出自己的见解,或者有人研究过这篇文章的话,也能不吝赐教,谢谢! 最后附上两张对比图像,放大3倍。 这是窗口方法得到的图像,图像明显模糊: <ignore_js_op> 这是按照论文中的算法实现的图像,其中底部文字“加拉巴哥群岛”质量较差,边缘部分已经乱了。 <ignore_js_op> |