最近邻插值详解(图像旋转变换为例)

以一张3x3的图片为例:

最近邻插值详解(图像旋转变换为例)_第1张图片

坐标:

(0,2)        (1,2)        (2,2)       

(0,1)        (1,1)        (2,1)        

(0,0)        (1,0)        (2,0)       

旋转变换公式:

x'=xcosβ-ysinβ

y'=xsinβ+ycosβ

take β=30° for example

cos30°≈0.86

sin30°=0.5

原始坐标 目标坐标 取整
1 (0,2) (-1,1.72) (-1,2)
2 (1,2) (-0.14,2,22) (0,2)
3 (2,2) (0.72),2.72) (1,3)
4 (0,1) (-0.5,0.86) (0,1)
5 (1,1) (0.36,1.36) (0,1)
6 (2,1) (1.22,1.86) (1,2)
7 (0,0) (0,0) (0,0)
8 (1,0) (0.86,0.5) (1,1)
9 (2,0) (1.72,1) (2,1)

 按照取整后坐标逆变换求出原图像采样点坐标(可能非整数),最近邻插值规则取像素点的灰度值:

(take row1 for example:(二元一次方程)

-1=0.86x-0.5y

2=0.5x+0.86y

这里解方程用软件Easy Equation Solver

标号 逆变换坐标
1
2
3
4
5
6
7
8
9

 计算欧氏距离:(仍然拿第一行举例)

选择插值坐标:

(0,2)       

(1,2)

(2,2)

(1,1)

(1,1)

(2,1)

(0,0)

(1,0)

(2,0)

填完像素值后,白色区域就为没有像素值的像素点,还要利用最近邻插值的方法进行插值 

 最近邻插值详解(图像旋转变换为例)_第2张图片

写出这些空白点的坐标:

(最底下的蓝色像素点的坐标为(0,0))

按行扫描从上到下空白坐标依次是:

(-1,3)        (0,3)                (2,3)

                        (0,2)                (2,2)

(-1,1)

(-1,0)                       (1,0)  (2,0)

                                              

                                                                           

 

                                    最近邻插值详解(图像旋转变换为例)_第3张图片      

填充像素坐标:(只有加粗坐标有值,其余像素点在原图中没有,灰度值为0,实际上RGB=0的应该是黑色,这里画成白色表示该点没有像素值)

 (1,3)        (2,3)                (3,2)

                        (1,2)                (3,1)

 (0,1)

(-1,1)                     (1,-1)   (2,-1)

填完结果VS原始图像:

最近邻插值详解(图像旋转变换为例)_第4张图片   最近邻插值详解(图像旋转变换为例)_第5张图片

最近邻插值缺点:

放大锯齿效应明显

马赛克

你可能感兴趣的:(计算机视觉,超分辨率重建,图像处理)