图像处理的Dither和Banding「建议收藏」

图像处理的Dither和Banding「建议收藏」由于前面的文章涉及到了这两个概念,而我又对图像处理一窍不通,所以专门写一篇文章来了解这两个概念。Colourbanding       banding是计算机图形中颜色表现不精确的一个问题。DitherDither(抖动)是一种故意造成的噪音用以随机化量化误差,阻止大幅度拉升图像时导致的像banding(色带)这样的问题.Dither概念常用在

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

由于前面的文章涉及到了这两个概念,而我又对图像处理一窍不通,所以专门写一篇文章来了解这两个概念。

Colour banding

图像处理的Dither和Banding「建议收藏」

             banding是计算机图形中颜色表现不精确的一个问题。

Dither

Dither(抖动)是一种故意造成的噪音用以随机化量化误差,阻止大幅度拉升图像时导致的像banding(色带)这样的问题.Dither概念常用在数字声音和数字视频数据处理中,也常用在compact disc中。

Dither来源:
    最早源自二战,当时的轰炸机飞行员使用了一个机械计算机来进行导航和bomb轨道计算。奇怪的是,这些计算机(由上百机械零件组成)在飞机甲板上要比在地面上工作地更为准确。工程师们意识到飞机的震动降低了它的一些活动部件所导致的错误。为了让它们更好的工作,工程师为这种计算机安装了震动马达,他们把这些马达的震动成为dither。……

图像处理中的Dithering是一个使用有限调色板在图像中创建色深错觉的技术。在一个dithered的图像中,那些在调色板中不可用的颜色可以用当前调色板中可用的颜色中的一种近似代替,人眼可以接受这种由颜色组成的混合色。dithering类似于印刷技术中使用的半色调印刷。dithered图像,特别是使用相关的少许颜色的,通常都可以看出图像中包含的颗粒。(感觉自己翻译不明白,直接上图:)

                                                                    图像处理的Dither和Banding「建议收藏」
                         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上都有介绍)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182288.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python列表(list)详解[通俗易懂]

    Python列表(list)详解[通俗易懂]Python内置的四种常用数据结构:列表(list)、元组(tuple)、字典(dict)以及集合(set)。这四种数据结构一但都可用于保存多个数据项,这对于编程而言是非常重要的,因为程序不仅需要使

    2022年7月3日
    39
  • JavaScript—网络编程(3)-Object、String、Array对象和prototype属性[通俗易懂]

    JavaScript—网络编程(3)-Object、String、Array对象和prototype属性[通俗易懂]本节学习JavaScript的对象和方法(函数)~Object对象提供所有JScript对象通用的功能。obj=newObject([value])参数obj必选项。要赋值为Object对象的变量名。value可选项。任意一种JScript基本数据类型。(Number、Boolean、或String。)如果value为一个对象,返回不作改动的该对象。如果

    2022年5月9日
    48
  • Word修改默认字体

    Word修改默认字体在Win10的最近一次更新后,发现我的office365默认字体都给我改成等线,什么鬼,以前都是宋体,现在这个还真的不习惯,就动手修改默认字体,设置如下: 1、在word空白处点击鼠标右键,选择字体。 2、在弹出框设置样式(字体、大小等),设置完成之后点击设置默认值3、选择如下,点击确定即可。后面再创建word就默认是设置的字体以及大小。…

    2022年6月13日
    42
  • Windows 定时执行脚本[通俗易懂]

    Windows 定时执行脚本[通俗易懂]Windows定时执行脚本1、参考资料windows设置定时执行脚本2、解决办法由于Windows系统,无法使用Linux下强大的crontab命令,所以该定时任务也是针对Windo系统的具体操作步骤右击【我的电脑】,选择【管理】在【任务计划程序】面板中点击【创建基本任务】输入任务的【名称】和【描述】当然是希望每天自动执行防疫打卡啦~设置每天执行任务的时间,以及每隔几天执行一次该任务选择【启动程序】选择启动程序的startup.bat

    2022年7月17日
    58
  • Vue(1)Vue安装与使用[通俗易懂]

    Vue(1)Vue安装与使用[通俗易懂]前言Vue(读音/vjuː/,类似于view)是一套用于构建前后端分离的框架。刚开始是由国内优秀选手尤雨溪开发出来的,目前是全球“最”流行的前端框架。使用vue开发网页很简单,并且技术生态环境完善

    2022年7月30日
    4
  • Linux搭建 Minecraft 服务器

    Linux搭建 Minecraft 服务器本篇文章介绍使用常规方式和docker容器方式在linux操作系统上搭建最新版本的minecraft服务器,并使用bungeecord配置为群组服务器模式。

    2022年6月18日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号