【图像处理】图像变形与逆向的双线性插值
1、图像如下。

2、我想把像素[i,j]变到[int(i**2-j**2),int(2*i*j)]的位置上,并把图形缩放到和原图大小一样的形状。
结果如下。

3、为此,我需要确定变换之后的图像的[i,j]位置上的像素,在原图中的位置。
这可以通过求解方程组,来获取逆变换来实现。

4、选择第一组解作为逆变换,需要套上绝对值符号。因为原图中的像素的位置坐标都是不小于0的。

5、但是,如果逆变换得到的像素的位置坐标不是整数,怎么办?
这就需要用到一种双线性插值的算法:
X=int(x)
Y=int(y)
x0=x-X
y0=y-Y
if 0<X<a-1 and 0<Y<b-1:
kk=(1-x0)*(1-y0)*img[X,Y]+x0*y0*img[X+1,Y+1]
kkk=(1-x0)*y0*img[X,Y+1]+x0*(1-y0)*img[X+1,Y]
img0[i,j]=kk+kkk

6、运行结果,就是下图。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:72
阅读量:26
阅读量:28
阅读量:86
阅读量:175