图像处理的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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm添加pip指令安装库的方法[通俗易懂]

    pycharm添加pip指令安装库的方法[通俗易懂]我们在cmd命令窗口通过pip指令安装的python第三方库,在使用pycharm的时候并不能直接使用,需要通过配置与python3.8的外部库相连接。1.file–>setting2.project–>ProjectInterpreter选择python.exe的路径,一般在python3.x文件夹下3.添加python.exe的路径如果没有类似python3.8/python.exe的选项,就点击右侧的设置按钮添加然后点击OK就会出现如下通过pip指令安装的所有第三方库,

    2022年8月25日
    8
  • C语言浮点数表示法 / float表示法(浮点数表示方法)

    C语言浮点数表示法 / float表示法(浮点数表示方法)一直不太清楚C语言中浮点数是怎么表示的,这篇文章能回答我的问题?浮点表示法float共计32位(4字节)由最高到最低位分别是第31、30、29、……、0位31位是符号位,1表示该数为负,0反之30~23位,一共8位是指数位(-128~127)22~0位,一共23位是尾数位后更。。…

    2022年6月28日
    33
  • c++一些常用的数学函数

    c++一些常用的数学函数

    2021年9月27日
    75
  • 下载怪兽模板(TemplateMonster)的方法「建议收藏」

    下载怪兽模板(TemplateMonster)的方法「建议收藏」提到Flash网站模板,就不得不提起“怪兽模板(TemplateMonster)”这个品牌,TM的每件作品都堪称佳作,他们不仅在创作,更是在引领时代潮流,可以说,TM的作品是每

    2022年7月1日
    42
  • Linux用telnet判断端口是否通

    Linux用telnet判断端口是否通通的[root@1222~]#telnet127.0.0.14531Trying127.0.0.1…Connectedto127.0.0.1.Escapecharacteris’^]’.不通[root@1222~]#telnet127.0.0.14581Trying127.0.0.1…telnet:connecttoaddress127.0.0.1:Connectionrefused退出方式1.输入Ctrl+】键,然后

    2025年8月23日
    5
  • leetcode-53最大子序和(离线|分治)「建议收藏」

    leetcode-53最大子序和(离线|分治)「建议收藏」给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [0]输出:0示例 4:输入:nums = [-1]输出:-1示例 5:输入:nums = [-100000]输出:-100000 提示:1

    2022年8月8日
    8

发表回复

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

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