数字图像处理图像缩放算法

C++语言 码拜 9年前 (2016-04-18) 2476次浏览
最近做一个C++课程设计,老师给的题要求是:
分别采用三种以上的方法实现数字图缩放变换功能。(提示:最近邻插值、线性插值、双线性插值、曲线插值)
但本人在网上找了相关算法,只能找到三种,最近邻插值,双线性插值,曲线插值(三次卷积),根本就不存在什么线性插值,或说双线性插值就和线性插值在图像缩放这里就是一回事(ps:本人理解的是图像是二维的,要进行线性插值的话要在x方向和y方向进行,所以就是双线性插值,本人在网上找了线性插值实现图像缩放,到最后都是在讲双线性插值,所以本人就蒙圈了),本人怎么同时写这两种算法的程序呀,求帮助各位高手,有线性插值函数能实现图像缩放吗?没有的话能在推荐一个不那么复杂的算法吗,本人是一名女生,编程能力比较差,太难的算法怕实现不了。
解决方案

10

线性插值、双线性插值  应该是一样的, 应该没人无聊的只在一个方向上插值, 莫非是像 100*100 缩放成 100*50 这种么, 有可能吧…
最近邻插值和线性插值都很简单的,  几十行代码的事情..
还要注意下, 缩小时一定不要一次缩小超过 50%, 不然会丢失非常非常多的细节, 例如 1000 * 1000 的图片缩小为 100*100,  你应该先缩放成   500*500,  250*250,  125*125  然后再做 125*125 到 100*100 的缩放…

10

实时缩放还会涉及mipmap的三线过滤。非等比缩放的话还能扯上各向异性…
另外,非线性插值的函数有很多,也未必就是曲线

5

另外还有最粗暴的但是效果也是最好的计算缩小后像素在原图中覆盖的位置,直接对覆盖范围采样加权计算缩小后的颜色的方法。当然放大不需要这么折腾。

5

尺寸小于64×64时加锐化。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明数字图像处理图像缩放算法
喜欢 (0)
[1034331897@qq.com]
分享 (0)