数字图像缩放算法
来源:互联网 发布:打车软件悄然涨价 编辑:程序博客网 时间:2024/04/20 22:51
一、最临近插值
将缩放后的图像坐标通过反向变换得到的一个浮点坐标,对其进行简单的四舍五入的取整,得到一个整数型坐标,这个整数型坐标在原图像对应的像素值就是缩放后目的像素的像素值。最邻近插值简单且直观,但产生了明显可见的锯齿,得到的图像质量不高。
设原图像为f(x,y),缩放后的图像为g(u,v),水平缩放系数为ZoomX,竖直缩放系数为ZoomY,则用下面的等式计算使用最临近插值法缩放后的像素值:
g(u,v)= f([u/ZoomX],[v/ZoomY])
其中[]符号表示对包络的数值取整数部分。
二、双线性插值
将缩放后的图像坐标通过反向变换得到的一个浮点坐标,将浮点坐标在原图像应位置周围的4(2×2)个像素根据某种权值进行加权运算得到的像素值就是缩放后目的像素的像素值。双线性插值缩放后图像质量高,极大地消除了锯齿现象,不会出现像素值不连续的的情况,但由于其具有低通滤波器的性质,使高频分量受损,所以可能会使图像轮廓在一定程度上变得模糊。
设原图像为f(x,y),缩放后的图像为g(u,v),水平缩放系数为ZoomX,竖直缩放系数为ZoomY,则使用下面的方法计算使用双线性插值法缩放后的像素值。
令
x' = [u/ZoomX],y' = [v/ZoomY]
m = u/ZoomX - x',n = v/ZoomY - y'
其中[]符号表示对括号包络的部分取整数部分。
则有
g(u,v)= (1-m)×(1-n)× f(x',y')+ (1-m)×n× f(x',y'+1)+m×(1-n)× f(x'+1,y') + m×n×f(x'+1,y'+1)
三、三次卷积法
三次卷积(内插)法能够克服以上两种算法的不足,是双线性插值算法的改进算法,它输出图像的每个像素都是原图16个像素(4×4)运算的结果。计算精度很高但计算量也很大。
设原图像为f(x,y),缩放后的图像为g(u,v),水平缩放系数为ZoomX,竖直缩放系数为ZoomY,则使用下面的方法计算使用三次卷积插值法缩放后的像素值。
令
x' = [u/ZoomX],y' = [v/ZoomY]
m = u/ZoomX - x',n = v/ZoomY - y'
其中[]符号表示对括号包络的部分取整数部分。
则有
g(u,v) = [A][B][C](进行矩阵乘法运算,结果为一个关于u、v的函数)
[A]= [ S(m+1) S(m+0) S(m-1) S(m-2) ]
┏ f(x'-1, y'-1) f(x'-1, y'+0) f(x'-1, y'+1) f(x'-1, y'+2) ┓
[B]= ┃ f(x'+0, y'-1) f(x'+0, y'+0) f(x'+0, y'+1) f(x'+0, y'+2) ┃
┃ f(x'+1, y'-1) f(x'+1, y'+0) f(x'+1, y'+1) f(x'+1, y'+2) ┃
┗ f(x'+2, y'-1) f(x'+2, y'+0) f(x'+2, y'+1) f(x'+2, y'+2) ┛
┏ S(n+1) ┓
[C]= ┃ S(n+0) ┃
┃ S(n-1) ┃
┗ S(n-2) ┛
1-2*|x|^2+|x|^3 , 0<=|x|<1
S(x)= { 4-8*|x|+5*|x|^2-|x|^3 , 1<=|x|<2
0 , 其他
网上关于图像缩放的算法不是很多,即使有多数描述的也不太清楚,最近做作业刚好在做,所以这里总结一下。
- 数字图像缩放算法
- 数字图像缩放算法
- 谈谈数字图像的缩放算法
- MTK 数字图像的缩放算法
- 数字图像的缩放算法【转】
- 谈谈数字图像的缩放算法
- 谈谈数字图像的缩放算法
- 数字图像缩放算法--双线性插值
- 当今主流数字图像缩放技术的算法
- 数字图像缩放之双三次插值
- [数字图像处理]数字图像的有理数倍缩放(缩小与放大)
- 数字图像处理--图像缩放--双线性插值
- 数字图像的缩放及opencv中的实现
- 数字图像基本处理算法
- 数字图像基本处理算法
- 常用数字图像处理算法
- 数字图像处理-算法学习
- 数字图像处理-算法学习
- 两道面试题
- 存货收发存应用实例
- #include的用法
- wally同盟社特别版(免安装密码)
- JAR 文件包
- 数字图像缩放算法
- 写给做网页设计和切图的朋友
- 详解开源界的 5 大开源许可协议
- php 阿拉伯数字转中文数字 方法
- 回调与事件-个人理解
- VMware7.0下centOS5.4分辨率的设置
- 从CStatic派生新类,形成具有可以改变字体、背景颜色 和字体颜色的控件类
- 在Ubuntu 9.10下搭建Java开发环境(一):jdk篇
- SQL建立索引