由于前面的文章涉及到了这两个概念,而我又对图像处理一窍不通,所以专门写一篇文章来了解这两个概念。
banding是计算机图形中颜色表现不精确的一个问题。
Dither(抖动)是一种故意造成的噪音用以随机化量化误差,阻止大幅度拉升图像时导致的像banding(色带)这样的问题.Dither概念常用在数字声音和数字视频数据处理中,也常用在compact disc中。
Dither来源:
最早源自二战,当时的轰炸机飞行员使用了一个机械计算机来进行导航和bomb轨道计算。奇怪的是,这些计算机(由上百机械零件组成)在飞机甲板上要比在地面上工作地更为准确。工程师们意识到飞机的震动降低了它的一些活动部件所导致的错误。为了让它们更好的工作,工程师为这种计算机安装了震动马达,他们把这些马达的震动成为dither。……
图像处理中的Dithering是一个使用有限调色板在图像中创建色深错觉的技术。在一个dithered的图像中,那些在调色板中不可用的颜色可以用当前调色板中可用的颜色中的一种近似代替,人眼可以接受这种由颜色组成的混合色。dithering类似于印刷技术中使用的半色调印刷。dithered图像,特别是使用相关的少许颜色的,通常都可以看出图像中包含的颗粒。(感觉自己翻译不明白,直接上图:)
An illustration of dithering. Red and blue are the only colors used but, as the red and blue squares are made smaller, the patch appears violet.
Dithering技术在早期的视频适配器、现在的一些手机上使用的LCD,还有一些廉价的数码照相机上都有使用,这些设备的色域范围都要小于那些更先进的设备。例如,在照片图像可能包含数百万中颜色,但是在视频硬件上只支持256色,所以就需要使用这256色通过dither技术来近似的达到原图的效果。如果不使用dithering技术的话,那么原图里面那些不被支持的颜色可能会被这些颜色的近似颜色所代替,这样会导致最后显示出来的效果很差。
……
另外需要使用dithering的情况是图像文件格式的限制因素。特别的,通常使用的GIF严格限定只能使用256或者更少的颜色(在大多数图像编辑软件里是这样的)。其它一些格式,例如PNG,由于为了降低文件大小,也会使用相应的限制。这些使用受限颜色的图片会包含一个它所使用的颜色的调色板。在这种情况下,图像编辑软件就会负责dithering图像而不仅仅是使用这些格式保存这类文件。
算法:
有很多dithering算法。一个最早的,并且仍然流行的一个是Floyd–Steinberg dithering.(还有很多算法,wiki上都有介绍)
分享到:
相关推荐
- 文中提及了一些图像处理相关的函数,如cat(拼接数组)、dither(抖动)、gray2ind(灰度转索引)、grayslice(灰度分割)、im2bw(转换为二值图像)、ind2rgb(索引转RGB)以及mat2gray(矩阵转换为灰度图像)。...
在MATLAB中,数字图像处理涉及多个关键操作,包括图像的转换、运算、读写和显示。以下是对这些概念的详细说明: 1. **图像转换**: - `BW=dither(I)`:将灰度图像I转换为二值图像,采用抖动法。 - `X=dither(RGB,...
《数字图像处理及MATLAB实现》是一本深入探讨数字图像处理技术及其在MATLAB环境中的应用的书籍。MATLAB作为一种强大的数学计算软件,是进行图像处理的常用工具,其丰富的函数库使得图像处理变得简单而高效。 在数字...
- `imview`提供了一些工具,如全景查看、像素区域选择和图像信息显示。 4. 图像代数运算: - `imadd`执行图像相加,可以选择存储为8位或16位。 - `imcomplement`生成图像的补图像。 - `imsubtract`和`imabsdiff...
MATLAB 图像处理工具箱提供了将图像从一种类型转换为另一种类型的功能,比如使用 `dither` 函数可以将灰度图像转换为二值图像或从 RGB 图像生成索引图像。此外,还可以通过类型转换函数改变图像数据的存储格式,如将...
数字图像处理实验1 MATLAB图像处理编程基础实验报告 一、数字图像处理实验目的 ...通过本实验,学生可以掌握MATLAB图像处理编程基础,了解MATLAB图像处理工具箱的功能,并编程实现图像类型间的转换和图像算术操作。
数字图像处理及MATLAB实现 数字图像处理是利用计算机对数字图像进行处理和分析,以获取有用的信息或实现特定的图像...数字图像处理是计算机科学和图像处理技术的重要组成部分,而MATLAB是实现数字图像处理的强大工具。
总的来说,“PictureAndVideoDither_dither_”项目为IT专业人士提供了一个了解和实践图像处理中dithering技术的平台,特别是C#编程者,可以通过它学习到如何使用C#进行图像处理,掌握空间错误扩散算法的应用,从而...
Matlab图像处理工具箱函数详解 Matlab作为一款功能强大且广泛应用于科学计算和数据分析的软件,对于图像处理领域也提供了强有力的支持。...通过掌握这些函数,可以实现图像处理、图像分析和图像识别等任务。
数字图像处理是指对数字图像进行处理和分析,以提取有用的信息。MATLAB是一个强大的工具,常被用来实现数字图像处理。下面将对数字图像处理的基本概念和MATLAB实现进行介绍。 1. 图像表示 数字图像可以表示为二值...
综上所述,MATLAB 提供了全面的工具和函数集,涵盖了数字图像处理的各个方面,从基本的图像转换、读写,到复杂的图像运算和显示,使得开发者能够高效地进行图像分析、处理和应用开发。无论是科研还是工程实践,...
实验的主要目标是让学生熟悉MATLAB的环境和图像处理工具箱,掌握图像的读取、存储、显示以及类型转换等操作。此外,还涵盖了图像算术运算。 MATLAB是一种强大的数学计算软件,它的图像处理工具箱提供了丰富的函数,...
实验报告的焦点在于介绍和掌握MATLAB在数字图像处理中的基本应用,包括理解MATLAB产品体系、图像处理工具箱的使用、图像的存储和类型、文件读写以及图像显示。此外,还涵盖了图像类型的转换、算术操作等编程实践。 ...
MATLAB作为一种高级数学计算和仿真工具,以其强大的矩阵处理能力和丰富的图像处理函数库,成为了数字图像处理领域中的一个重要平台。 MATLAB数字图像处理文档中提到的函数和概念,如灰度转换、图像索引、二值化、...
本篇文章将详细介绍几个关键的MATLAB图像处理函数,包括bwareaopen、bwlabel、bwperim、colfilt和dither,以及简要提及conv2。 首先,`bwareaopen`函数用于从二值图像中移除小面积的连通对象。它通过设定一个面积...
Matlab 中图像类型的转换和彩色模型的转换,涵盖了图像类型的转换、彩色模型的转换和纹理映射三个方面的内容,为读者提供了详细的 Matlab 代码和示例图像,帮助读者更好地理解和掌握 Matlab 中的图像处理技术。
图像处理在计算机科学领域是一个重要的分支,特别是在计算机视觉、图像分析和数字艺术中扮演着核心角色。MATLAB作为一款强大的数值计算和数据可视化软件,提供了丰富的图像处理函数,包括对RGB图像、索引图像和灰度...
在图像处理领域,转换和操作不同类型的图像是一种常见的任务。本文将详细介绍几个在MATLAB中用于处理RGB图像、索引图像和灰度图像的IPT(Image Processing Toolbox)函数。 1. **dither函数**: dither函数主要...