石鑫华视觉 手机微信QQ:13450001061

图像编程

图像缩放

文章来源:石鑫华视觉网时间:2022-09-02 10:41:25 点击:271

图像缩放

图像缩放概述

在计算机图形学中,图像缩放(ZOOM)指的是通过增加或去掉像素来改变图片的尺寸。由于要在效率和图像质量比如平滑度和清晰度之间做折衷,图像缩放并不是个平庸的过程。当图像尺寸增大的时候,组成图像的像素也越来越大,图像看上去就变"柔和"了。而缩小图像的时候,图像就变得平滑和清晰了。

除了为了适应显示区域而缩小图片外,图像缩小技术更多的是被用来产生预览图片。图像放大技术一般被用来令一个较小的图像填充一个大的屏幕。当你放大一张图像时,你不能可能获得更多的细节,因此图像的质量将不可避免的下降。不过也有很多技术可以保证在放大图像即增加像素的时候,图像的质量不变。

缩放算法

图片的缩放可以用很多种方法, 现在考虑把下面的图片放大1倍:

image.png

最简单的方法是用近邻取样插值(Nearest-neighbor interpolation), 将四个像素用原图一个像素的颜色填充.

image.png

放大后的图像是原图的2倍大小, 并且也保留了原图的所有细节. 只是结果并不让人满意, 有阶梯状锯齿(注意字母W).

其他的缩放方法能更好的保留原图平滑的线条. 举个例子, 用双线性插值, 可以得到下面的结果:

image.png

线性(或双线性)插值在改变图片尺寸上一般比近邻插值效果好. 不过也会导致一些不期望的细节柔化并且还是会导致锯齿. 更好的方法包括双三次插值:

image.png

对于低像素, 颜色数少的图像放大, 用hqx或者点阵图缩放算法(Pixel art scaling algorithms)可以得到更好的结果. 生成的图片可以得到较好的边缘锯齿细节. 下图使用hq2x:

image.png

对于缩放照片(以及含有大量颜色的位图), 使用抗锯齿算法超级采样(Supersampling)可以得到较好的结果.

放大算法

目前图像放大几乎都是采用内插值方法,即在原有图像像素的基础上在像素点之间采用合适的插值算法插入新的元素。

明晰的插值算法分类

目前对插值算法分类比较混乱,各人有各人的分类算法。文献《图像插值技术综述》[1] 中简略的将插值算法分为传统插值、 基于边缘的插值和基于区域的插值 3类,作为初学者入门明晰插值算法还是有帮助。

1.传统差值原理和评价

在传统图像插值算法中, 最近邻插值较简单, 容易实现,早期的时候应用比较普遍。但是, 该方法会在新图像中产生明显的锯齿边缘和马赛克现象。双线性插值法具有平滑功能, 能有效地克服最近邻法的不足, 但会退化图像的高频部分, 使图像细节变模糊。在放大倍数比较高时, 高阶插值, 如双三次和三次样条插值等比低阶插值效果好。这些插值算法可以使插值生成的像素灰度值延续原图像灰度变化的连续性,从而使放大图像浓淡变化自然平滑。但是在图像中,有些像素与相邻像素间灰度值存在突变, 即存在灰度不连续性。这些具有灰度值突变的像素就是图像中描述对象的轮廓或纹理图像的边缘像素。在图像放大中, 对这些具有不连续灰度特性的像素, 如果采用常规的插值算法生成新增加的像素, 势必会使放大图像的轮廓和纹理模糊, 降低图像质量。

2.基于边缘的图像插值算法

为了克服传统方法的不足, 提出了许多边缘保护的插值方法,对插值图像的边缘有一定的增强, 使得图像的视觉效果更好, 边缘保护的插值方法可以分为两类: 基于原始低分辨图像边缘的方法和基于插值后高分辨率图像边缘的方法。基于原始低分辨率图像边缘的方法:( 1)首先检测低分辨率图像的边缘, 然后根据检测的边缘将像素分类处理, 对于平坦区域的像素,采用传统方法插值;对于边缘区域的像素, 设计特殊插值方法, 以达到保持边缘细节的目的。(2)基于插值后高分辨率图像边缘的方法这类插值方法: 首先采用传统方法插值低分辨率图像,然后检测高分辨率图像的边缘,最后对边缘及附近像素进行特殊处理, 以去除模糊, 增强图像的边缘。

3.基于区域的图像插值算法

首先将原始低分辨率图像分割成不同区域,然后将插值点映射到低分辨率图像, 判断其所属区域, 最后根据插值点的邻域像素设计不同的插值公式, 计算插值点的值。

其他主流插值算法

偏微分方程插值(PDE),分形,小波逆向插值这三种也是目前插值算法的主流之一。小波与分形算法计算复杂度高,效果较好,小波边缘处理最好,分形次之。

小波插值充分利用 了图像奇异特征沿小波分解尺 度的传播性 , 能够更准确地重建出高分辨率图像细节。 但由于小波系数奇异值 的定位涉及精确复杂的边缘检 测且小波系数很难跨 尺度对准, 使得算法实现十分复杂。基于小波插值 的算法主要有两种, 分别为子带插值 和极值外推插值。小波变换本质上是用小波函数作为

带通滤波器进行滤波, 将原始信号分解为一系列频带上 的信号由小波函数簇定义小波变换为: 小波插值公式1。

image.png

  小波插值公式1

而小波逆变换则是从分解到各频带 的信号进行原

始信号的重构 :小波插值公式2

image.png

  小波插值公式2

小波插值公式3:

image.png

  小波插值公式3

推广出二维离散小波变换,对数字图像进行重构和插值。如果图像 是空问频率有限的二维信号, 对图像进行相应频窗的小波反变换得到的图像就可认为是对该图像的插值。

分形图像是一种具有复杂几何形状,不规则的图像 ,但其内部基本特征是自相似性 ,它反映了局部与局部 ,局部与整体在形态、 功能、 时空等方面具有统计意义的相似性.提高图像分辨率的简单有效的方法是进行内插 ,但经通常的内插后 ,图像的纹理特征会有损失 ,利用分形插值方法可以生成高分辨率的图像 ,而且能保持原来图像的纹理特征。

常见图像查看、图像处理软件的图像缩放

视觉软件或其它图像处理软件,通常缩放都是不使用插值算法的,就是直接进行像素上的缩放,是多少值就是多少值。因为这样需要保证图像特征的真实性,所以不会使用插值方法进行插值,而使图像更平滑清晰之类的。下面来看一下NI图像软件中的缩放。

image.png

MAX中图像适应窗口

image.png

MAX中图像放大为6倍

从MAX的图像缩放显示效果来看,放大到6倍时,基本上每个像素都可以看得清楚。有很强的锯齿效果。

而NI Vision Assistant、NI Vision Builder for AI、NI Vision Development Model等其它NI视觉软件,也都是同样的原理与效果。

Windows 7系统自带的照片查看器,也是没有使用插值方法,直接缩放的软件。如下图所示:

image.png

Windows照片查看器适合窗口

image.png

Windows照片查看器放大图像

其它软件,如Photoshop、Windows自带的画图软件等也都是使用同样的直接缩放方法。

而针对网络上应用比较多的一些看图软件,如ACDSEE、美图看看等软件,因为集成了许多的图像处理插件,因此其为了更好的展示图像,在缩放时一般是使用了插值方法的,因此在放大图像时,图像的边缘会更平滑。

image.png

ACDSEE适合图像窗口

image.png

ACDSEE放大图像查看

首页
84162741QQ
联系