简介
目前常用的单帧插值放大或者说单帧超分辨方法,大致上有如下几种: 1、基于边缘插值放大方式。 2、基于NLM方式。 3、基于图像对比度增强方式。 4、事先训练大量低分辨率图像块及对应高分辨率图像图像块数据集,通过查图像块字典方式插值放大。 5、通过训练大量低分辨率图像及对应高分辨率图像,得到对应滤波器,通过该滤波器进行图像插值放大。
本篇主要介绍下:基于单帧图像细节保持的边缘插值放大算法。参考论文:Contour stencils for edge-adaptive image interpolation
背景概述
前段时间寻觅了下做超像素方法,发现了这个,实现了下感觉效果还行,整理记录下。
实现原理
核心原理就是图像像素插值放大时候,考虑每个像素所在位置的图像边缘方向,按照边缘方向进行插值像素计算。 1、将图像边缘方向分类到12个模板中:
2、对每个像素,计算出该像素基于每个模板的梯度,选出最小梯度的模板,作为该像素所在的边缘方向。
3、根据每个像素点对应所属的边缘方向,进行各自对应插值计算,得到结果图像。
效果演示
1、论文上效果图: 输入图像 结果图像
2、代码实现跑出来的效果比较:
从左往右依次为:输入图像,opencv自带双线性插值4倍放大后图像, 论文算法代码实现4倍插值放大后图像。