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


相关推荐

  • 分享一份软件测试项目实战(web+app+h5+小程序)

    分享一份软件测试项目实战(web+app+h5+小程序)大家好,我是谭叔。本次,谭叔再度出马,给大家找了一个非常适合练手的软件测试项目,此项目涵盖web端、app端、h5端、小程序端,可以说非常之全面。缘起在这之前,谭叔已经推出了九套实战教程。但是,这些教程以web测试和接口测试为主,没有app等项目。为了让实战项目更加全面、涵盖到各端,同时也为了满足读者粉丝们对项目的高需求,我决定再给大家找一个项目。(实力宠粉,求个赞不过分吧~)说实话,在找项目的过程中,我下载过(甚至付费下载过)N多个项目、联系过很多项目的作者,但是绝大部分项目,在我看来,并不

    2022年6月22日
    38
  • 阿里云轻量服务器开放指定端口吗_阿里云服务器怎么远程连接

    阿里云轻量服务器开放指定端口吗_阿里云服务器怎么远程连接第一次使用云服务暴露端口,踩了一些坑总结一下整个过程首先要在防火墙中添加对应端口,然后,进入安全组添加指定的端口,才算完成整个设置一、防火墙设置1、进入服务器选择防火墙,点击“添加规则”2、输入指定端口号,协议选择TCP就行,完成后点击确定二、在安全组中添加端口1、如果没有安全组时点击“创建安全组”,有则点击“配置规则”2、点击“手动添加”3、输入对应的端口号、源地址,点击保存整个设置过程就是这样,整个设置很简单,但是要是漏掉一个环节对新手来也是麻烦的…

    2022年10月2日
    0
  • kong网关集群部署[通俗易懂]

    kong网关集群部署[通俗易懂]kong网关集群部署机器准备节点A部署1.安装依赖组件2.安装postgresql3.创建kong数据库4.安装kong5.安装可视化界面konga6.konga部署在生产环境节点B部署1.安装kong测试集群效果机器准备节点A192.168.0.1节点B192.168.0.2节点A部署1.安装依赖组件yum-yinstallgcc-c++yum-yinstallpc…

    2022年9月11日
    1
  • networkx之图遍历和图绘制

    networkx之图遍历和图绘制networkx之图遍历和图绘制文章目录networkx之图遍历和图绘制图数据读取后默认标签(labels)为索引,如何使用编号id?图数据读取后,如何得到节点集和边集?如何绘制多样的图?图数据读取后默认标签(labels)为索引,如何使用编号id?例如在读取football数据时,其labels都是节点的英文名称,这样在处理图数据时不是很方便,往往报错,我们通常习惯处理节点的编号从1开始,可以建立label-id的反向索引,如果处理图数据时只需要编号id,可以将labels属性设置为id,如果之后还

    2022年5月9日
    53
  • python数据清洗补齐_我的世界fill填充上半砖

    python数据清洗补齐_我的世界fill填充上半砖缺失数据比较多的情况下,可以直接滤除,缺失数据比较少时,对数据进行填充就很有必要了。数据填充函数fillna()默认参数如下:fillna(self,value=None,method=None,axis=None,inplace=False,limit=None,downcast=None,**kwargs)importnumpyasnpfromnumpy…

    2022年8月12日
    3
  • java collections.sort_java中

    java collections.sort_java中importjava.awt.BorderLayout;importjava.awt.GridLayout;importjava.awt.image.BufferedImage;importjavax.swing.ImageIcon;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;…

    2022年9月8日
    1

发表回复

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

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