文档章节

图像缩放与多采样率

abcijkxyz
 abcijkxyz
发布于 2016/11/22 16:46
字数 860
阅读 18
收藏 0

    图像缩放是一个既简单而又复杂的问题,有很多经典的插值算法,但这些插值算法总会一定程度上的模糊图像。就即使采用3次多项式插值也是如此。于是有人认为可以在插值之前采用预处理,插值之后增加后处理的方法以提高图像质量。也就是:

 

               

 

 

 

    其中预处理也就是预滤波,后处理也是后置滤波操作。

    这样的处理过程真正能提高图像质量吗?以前对这一操作过程就有一些疑惑。因为插值本身就具有低通滤波的作用。

 

首先思考一下整数倍图像放大问题。这种情况对应于2维信号的整数倍内插操作。多抽样率数字信号告诉我们,内插操作因为事先不知道要插入的值是多少,于是就用零代替。但这样,从频域角度去看,多出了与信号频谱对称的高频分量,术语叫镜像。所以需要一个低通滤波器以去除镜像。这样滤波之后,原先那些补零的值就被修改为非零。所以,对图像整数倍放大问题,做图像插值后没有必要后置一个滤波器。

 

同样,考虑整数倍图像缩小问题。这种情况对应于2维信号的整数倍抽取操作。抽取就是把某些信号丢掉。最简单的2倍抽取就是保留偶数位置上的点,扔掉奇数位置上的点。但这样有可能会产生频谱混叠。为了避免混叠,可以事先进行低通滤波。以保证抽点之后虽然频谱扩展变胖了,但不会产生交叉。而图像缩小进行的插值本身也就是低通滤波的作用。所以,前面的预滤波没有必要。

 

当然,从多抽样率的观点来看。可以设计一个2维低通滤波器先对图像做低通滤波,然后扔掉奇数位置的点。这样必然得到缩小2倍的图像。对于图像放大问题而言,可以先在每两个像素之间插入0值,然后在设计一个2维低通滤波器对它做滤波,这样必然得到放大2倍的图像。

 

综上所述,采用图像插值的方法做图像缩放,增加预滤波和后置滤波不仅不能提高图像质量,还可能使图像更模糊。因为进行了多次低通滤波。图像质量取决于采用什么样的插值核函数,而插值核函数与多抽样中的滤波器没有本质上的区别,而且应该是一致的。设计怎样的滤波器等价于采用何种插值核函数。

 

目前有基于偏微分方程【PDE】的图像缩放能取得更好的效果。一种实现框架是先采用传统的图像插值的方法,然后做后处理。但是,这里的后处理不是传统的滤波,而是一种基于PDE的非线性扩散以增强边缘。目前更好的方法是完全扔掉插值过程,直接对图像采用图像修复的算法。

本文转载自:http://www.cnblogs.com/celerychen/archive/2010/12/08/3588219.html

共有 人打赏支持
abcijkxyz
粉丝 64
博文 6196
码字总数 1876
作品 0
深圳
项目经理
Android应用开发之(你必须知道的“避免内存溢出图片处理方案”)

今天给大家分享一些图片处理常用技术方案,Android应用开发的朋友必须要了解呀! 众所周知在Android应用开发中在对图片处理时,稍有不慎就会出现以下异常: java.lang.OutofMemoryError: bi...

雨焰
2012/10/23
0
0
Android中RGB_565方式压缩图片详解

Android压缩图片的方式 质量压缩 采样率压缩 缩放压缩 色彩压缩 RGB_565简介 RGB_565是色彩压缩的一种方式,其通过不用透明率以及对RGB的相应位数进行省略。 一个彩色图像由R G B三个分量组成...

右眼皮的爱
2017/09/20
0
0
LA2132系列USB逻辑分析仪高级触发功能图解

LA2132 、64通道 G系列逻辑分析仪 触发功能图示 用一条同步扁平电缆,用二台LA2132 构成64通道逻辑分析仪,连接如下: 时序测量: 采集的数据作为时序波形来显示,每一个通道都能定义为自已喜欢...

dy17comcn
08/15
0
0
Android进阶——图片优化之质量压缩、尺寸压缩、采样率压缩、LibJpeg压缩

效果演示 质量压缩 质量压缩:根据传递进去的质量大小,采用系统自带的压缩算法,将图片压缩成JPEG格式 尺寸压缩 尺寸压缩:根据图片的缩放比例进行等比大小的缩小尺寸,从而达到压缩的效果 ...

qq_30379689
2017/12/24
0
0
【 Android 】高效加载 Bitmap

是 Android 系统中图像处理的最重要的类之一。通过我们可以获取到图片的信息(宽度的像素值,高度的像素值,总的像素值,α 值,还可以通过去创建一个新的等)。获取到信息之后,可以对其进行...

tnnowu
05/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

TypeScript基础入门之JSX(二)

转发 TypeScript基础入门之JSX(二) 属性类型检查 键入检查属性的第一步是确定元素属性类型。 内在元素和基于价值的元素之间略有不同。 对于内部元素,它是JSX.IntrinsicElements上的属性类型...

durban
21分钟前
0
0
AVA中CAS-ABA的问题解决方案AtomicStampedReference

了解CAS(Compare-And-Swap) CAS即对比交换,它在保证数据原子性的前提下尽可能的减少了锁的使用,很多编程语言或者系统实现上都大量的使用了CAS。 JAVA中CAS的实现 JAVA中的cas主要使用的是...

码代码的小司机
23分钟前
0
0
Android JNI开发系列(十三) JNI异常处理

JNI 异常处理 JNI异常与JAVA处理异常的区别 JAVA 有异常处理机制,而JNI没有 如果JAVA中异常没有捕获,后面的代码不会执行,JNI会执行 JAVA编译时的异常,是在方法显示的声明了某一个异常,编...

蔡小鹏
36分钟前
2
0
简单介绍Java 的JAR包、EAR包、WAR包区别

WAR包 WAR(Web Archive file)网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。War专用于Web方面。大部分的JAVA WEB工程,都是打成WAR包进行发布的。 War是...

Linux就该这么学
今天
1
0
Qt那些事0.0.7

在帮助文档(Overview - QML and C++ Integration)中随缘遇到一张图,是关于C++对象与QML整合介绍的,值得标记下来,虽然大部分功能也有所涉猎,但是还是留个记号,万一哪天我失忆了还想写Q...

Ev4n
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部