图像缩放的VC++实现实验要求1
试用最邻近插值和双线性插值对所给图像进行缩小和放大操作
先缩小12倍再放大12倍
描述图像的变化,分析变化的原因,并给出对两种插值方法的评价
最邻近插值(近邻取样法)最邻近插值是一种简单的插值算法,也称为零阶插值
它输出的像素灰度值就等于距离它映射到的位置最近的输入像素的灰度值
对于通过反向变换得到的的一个浮点坐标,对其进行简单的取整,得到一个整数型坐标,这个整数型坐标对应的像素值就是目的像素的像素值,也就是说,取浮点坐标最邻近的左上角点(对于DIB是右上角,因为它的扫描行是逆序存储的)对应的像素值
可见,最邻近插值简单且直观,但得到的图像质量不高;当图像中包含像素之间灰度级有变化的细微结构时,最邻近查值法会在图像中产生人为的加工痕迹
双线性插值对于一个目的像素,设置坐标通过反向变换得到的浮点坐标为(i+u,j+v),其中i、j均为非负整数,u、v为[0,1)区间的浮点数,则这个像素得值f(i+u,j+v)可由原图像中坐标为(i,j)、(i+1,j)、(i,j+1)、(i+1,j+1)所对应的周围四个像素的值决定,即:f(i+u,j+v)=(1-u)(1-v)f(i,j)+(1-u)vf(i,j+1)+u(1-v)f(i+1,j)+uvf(i+1,j+1)其中f(i,j)表示源图像(i,j)处的的像素值,以此类推
这就是双线性内插值法
双线性内插值法计算量大,但缩放后图像质量高,不会出现像素值不连续的的情况
由于双线性插值具有低通滤波器的性质,使高频分量受损,所以可能会使图像轮廓在一定程度上变得模糊
本实验的系统软件整体流程图如下:本实验使用的平台是VC6
0,使用VC++实现的图形用户界面
打开图片设置放大缩小倍数最近邻插值放大/缩小双线性插值放大/缩小保存处理后的图片是否继续处理其他图片退出程序否是2.功