(图像缩放算法)最邻近插值法

(图像缩放算法)最邻近插值法

例如:图像src为3*3的256级灰度图像(源图像)
234 38 22
67 44 12
89 65 63
矩阵中x坐标从左到右依次为0,1,2 y坐标从上到下依次为0,1,2

假设将该33图像放大至44的图像dst,那么每个像素值计算方式为:
(1)坐标对应方法(srcX srcY 为源图像坐标,dstX dstY为目标图像坐标)
srcX = datX * (srcWidth / dstWidth)
srcY = dstY * (srcHeight / dstHeight)
(2)目标图像dst像素值计算
目标图像dst中(0,0)像素点坐标对应源图像src中像素点坐标为
0 * ( 3 / 4 ) = 0
0 * ( 3 / 4 ) = 0
则目标图像dst中(0,0)点的像素值对应为源图像src中(0,0)点的像素值
即dst(0,0) = src(0,0) = 234

同理计算目标图像dst中(1,0)像素点的值
1* ( 3 / 4 ) = 0.75
0 * ( 3 / 4 ) = 0
由于数字图像坐标计算中1位最小单位(非亚像素计算下),则此处的0.75浮点数采取四舍五入直接截断小数部分处理方式。
那么
四舍五入 dst(1,0) = src(1,0) = 38
截断小数 dst(1,0) = src(,0) = 234

由此方法产生放大后的4*4目标图像dst为
234 38 22 22
67 44 12 12
89 65 63 63
89 65 63 63

这种放大图像的方法就叫做最邻近插值法是一种最基本也是最简单的缩放算法,但效果也是最不好的,放大后的图像有严重马赛克,缩小后的图像有严重失真。
效果不好的根源是其简单的最邻近插值法引入了严重的图像失真,比如,当由目标图像的坐标反推得到的源图像坐标是一个浮点数时,采用四舍五入的方法,直接采用了和这个浮点数最接近的像素的值,这种方法是很不科学的。
当推得坐标值为0.75的时候,不应该直接采取四舍五入的方式。而是应该根据0.75这个源图像src中虚拟的点四周的四个真实点来计算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值