你的位置:ai换脸 视频 > wwwxxxx >

反差 为不知 【FPGA图像措置实战】- 双三次插值算法(放大和减弱)

反差 为不知 【FPGA图像措置实战】- 双三次插值算法(放大和减弱)

本文将淡雅先容缩放后果更好但贪图量更大的双三次插值算法,包括算法基答允趣、罢了智商、FPGA罢了。

一、双三次插值算法

双三次插值(Bicubic interpolation)又叫双立方插值,是一种用于图像缩放的高阶插值法子,它通过在原始图像中登第16个像素点,并基于这些像素点进行加权平均来贪图方针图像中每个像素的值。双三次插值算法不错生成较为平滑的缩放收尾,但同期贪图量也相对较大。

1、基答允趣

遍历方针图像的每一个点,映射到原图像中,取得周围最近的16个点动作参考点,并凭据权重贪图函数贪图权重所有,基于这个16个参考点,作念水泛泛向和垂直标的的线性插值,也便是加权平均贪图。

2、罢了智商

(1)映射坐标

凭据图像的缩放比例,将方针图像中的每个像素点映射到原始图像中的相应位置。这个位置常常是一个浮点数坐标。设定(x,y)为方针图像中的少量,dstWidth和dstHeight为方针图像宽高,srcWidth和srcHeight是原图像的宽高,(fx,fy)是映射到原图像的浮点数坐标。

fx = x * ( srcWidth / dstWidth),fy = y * ( srcHeight / dstHeight)

(2)找到相近像素

在原始图像中找到与方针图像中每个像素点相对应的16个相近像素点。这16个像素点区别位于方针像素点在原始图像中的周围。设定P点(fx,fy)为映射点浮点数坐标。

国产视频精品在线偷拍

图片

对这个浮点数坐标取整,则x = floor(fx),y = floor(fy),水泛泛向权重所有dx = fx - x,垂直标的权重所有dy = fy - y;那么参考的16个点坐标区别为q00 = (x-1, y-1)、q01 = (x, y-1)、q02 = (x+1, y-1) 、 q03 = (x+2, y-1)、q10 = (x-1, y)、q11 = (x, y)、q12 = (x+1, y) 、 q13 = (x+2, y)、q20 = (x-1, y+1)、q21 = (x, y+1)、q22 = (x+1, y+1) 、 q23 = (x+2, y+1)、q30 = (x-1, y+2)、q31 = (x, y+2)、q32 = (x+1, y+2) 、 q33 = (x+2, y+2)。

救援成矩阵贪图公式:(W为权重贪图函数,F为原图像坐标数据)

P(fx,fy) = A*B*C

A = { W(1 + dx), W(dx) , W(1 - dx), W(2 - dx)}

图片

C = { W(1 + dy), W(dy) , W(1 - dy), W(2 - dy)}

(3)权重贪图

每个像素点的权重是凭据其距离映射点的距离来贪图的,距离越近,权重越大。常用的插值贪图权重函数有:Bicubic、Mitchell、Lanczos。

常用的Bicubic函数:x为方针像素点到隔壁点的距离,a值一般取1或-0.5。

图片

图片

Lanczos核函数:

图片

图片

三角形采样:

图片

Bell漫步采样:

图片

B样条弧线采样:

图片

(4)水泛泛向插值

将16个参考点按照水泛泛向,分红4组:(q00、q01、q02、q03)、(q10、q11、q12、q13)、(q20、q21、q22、q23)和(q30、q31、q32、q33),区别进行加权平均贪图,即为r0、r1、r2、r3、

r0 = W(1 + dx)*q00 + W(dx)*q01 + W(1 - dx)*q02 + W(2 - dx)*q03r1 = W(1 + dx)*q10 + W(dx)*q11 + W(1 - dx)*q12 + W(2 - dx)*q13r2 = W(1 + dx)*q20 + W(dx)*q21 + W(1 - dx)*q22 + W(2 - dx)*q23r3 = W(1 + dx)*q30 + W(dx)*q31 + W(1 - dx)*q32 + W(2 - dx)*q33

(5)垂直标的插值

按照垂直标的将r0、r1、r2、r3进行加权平均贪图,取得像素点P最终的像素值。

P(fx,fy)= W(1 + dy)*r0 + W(dy)*r1 + W(1 - dy)*r2 + W(2 - dy)*r3

3、优点与迤逦

(1)优点

双三次插值不错生成较为平滑的图像缩放收尾,减少了锯齿征象。

不错较好地保握图像的细节和纹理信息。

(2)迤逦

双三次插值的贪图量较大,可能会对性能有一定的影响。

二、FPGA罢了分析

缩放算法的基本结构齐不异,主要分为2个部分:行数据缓存模块、插值算法贪图模块(读数据地址逻辑、权重贪图逻辑、插值数学运算)。

双三次插值算法的参考点是4*4窗口,是以行数据缓存模块需要缓存5行的乒乓口头。

与双线性插值算法比拟,插值算法贪图模块多了“权重贪图逻辑”,且插值贪图是4点加权平均贪图。

图片

本站仅提供存储管事,扫数骨子均由用户发布,如发现存害或侵权骨子,请点击举报。