Dither(抖动): Bayer Matrix(Bayer ordered dither matrix)与Bayer Filter(拜尔滤镜)

news/2025/1/12 5:02:23/

1.参考(我的示例代码在页面底端)

可参考8x8 Bayer matrix: https://github.com/libretro/glsl-shaders/blob/master/dithering/shaders/bayer-matrix-dithering.glsl

BayerFilter: https://en.wikipedia.org/wiki/Bayer_filter

2.Ordered Dithering(有序抖动法,It is an image dithering algorithm)

    wiki:https://en.wikipedia.org/wiki/Ordered_dithering

    一篇不错的抖动算法描述:https://blog.csdn.net/paris_he/article/details/40341233

Arbitrary size threshold maps can be devised with a simple rule: First fill each slot with a successive integers. Then reorder them such that the average distance between two successive numbers in the map is as large as possible, ensuring that the table "wraps" around at edges.[citation needed] For threshold maps whose dimensions are a power of two, the map can be generated recursively via:

上图的 U 为元素都为1的对应方阵

M3(8×8阵)比较特殊,称为Bayer抖动表(上面的1/64图所表示的矩阵就是)

3.应用Ordered Dither在Banding效果图上的示例:

原图

4 x 4 Bayer matrix  Dithered效果:

8 x 8 Bayer matrix Dithered效果:

原理示例代码(JS):

let type = 8;// 4x4 Bayer Matrixlet threshold = [[0,8,2,10,0],[12,4,14,6,12],[3,11,1,9,3],[15,7,13,5,15]];if(type != 4){// 8 x 8 Bayer Matrixthreshold = [[0,48,12,60,3,51,15,63],[32,16,44,28,35,19,47,31],[8,56,4,52,11,59,7,55],[40,24,36,20,43,27,39,23],[2,50,14,62,1,49,13,61],[34,18,46,30,33,17,45,29],[10,58,6,54,9,57,5,53],[42,26,38,22,41,25,37,21]];}//let i = 0;let j = 0;let k = 0;let value = 0;for(; i < m_img.height; ++i){for(j = 0; j < m_img.width; ++j){k = (i * m_img.width + j) * 4;value = Math.floor(0.333 * (pixData[k] + pixData[k+1] + pixData[k + 2]));if(type != 4){                    if ((value>>2) > threshold[i&7][j&7]){value = 255;}else{value = 0;}}else{                                        if ((value>>2) > threshold[i&3][j&3]){value = 255;}else{value = 0;}}pixData[k] = value;pixData[k+1] = value;pixData[k+2] = value;pixData[k+3] = 255;}}

4.Floyd–Steinberg Dithering

   Wiki: https://en.wikipedia.org/wiki/Floyd%E2%80%93Steinberg_dithering

   Error diffusion: https://en.wikipedia.org/wiki/Error_diffusion

   原图:

   抖动之后的图:

如果用更少的色阶来表示这两张图,抖动之后的图效果要比原图好很多(可以用色调分离和模糊这两个操作来做实验)

 

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


http://www.ppmy.cn/news/452314.html

相关文章

拜尔滤色拜尔滤色镜_如何在Windows 10上启用滤色器以更清晰地阅读屏幕

拜尔滤色拜尔滤色镜 Windows 10 now includes color filters, an accessibility feature that changes the color of everything on your screen. They apply at the system level and work the same way as Night Light, so they work with any application. Filters can turn…

建筑节能案例解析:拜尔的生态幼儿园

建筑物的温室气体排放量约占全球总排量的18%&#xff0c;因此拜耳集团希望过能通过这些零排放、零能耗的建筑项目帮助减排。拜耳生态幼儿园是一栋1000平方米的低层建筑&#xff0c;是拜耳集团ECB&#xff08;生态商用建筑&#xff09;项目最新作品。 这座幼儿园的重点不是让建筑…

拜尔滤色拜尔滤色镜_如何在iPhone或iPad上启用滤色器以方便眼睛阅读

拜尔滤色拜尔滤色镜 On an iPhone or iPad, you can use the “Display Accommodations” accessibility feature to invert the colors on your screen, reduce the brightness of white and bright colors on your screen, and enable color filters designed to aid people …

量子前沿英雄谱|激光界泰斗Robert Byer(罗伯特·拜尔)

著名物理学家、美国国家科学院院士和国家工程院院士 斯坦福大学应用物理系教授Robert L. Byer &#xff08;图片来源&#xff1a;网络&#xff09; 激光在今天无处不在。没有他们&#xff0c;现代社会就无法运转。 激光使自动驾驶汽车能够感知周围环境&#xff0c;并使外科医生…

2021-2027全球与中国控制型电动液压执行器市场现状及未来发展趋势

报告摘要 2019年&#xff0c;全球控制型电动液压执行器市场规模达到了xx亿元&#xff0c;预计2026年将达到xx亿元&#xff0c;年复合增长率(CAGR)为xx%。 本报告研究全球与中国市场控制型电动液压执行器的产能、产量、销量、销售额、价格及未来趋势。重点分析全球与中国市场的…

德国拜尔集团迎来人工智能专家--李飞飞

点击 欧盟IT那些事 关注我们 公告&#xff1a;因企鹅审核规定&#xff0c;本公众号从《德国IT那些事》更名为《欧盟IT那些事》。 美籍人工智能专家李飞飞加盟德国拜耳集团。《勘误&#xff1a;标题应为拜耳集团》 人工智能专家李飞飞已经深刻理解了德国拜耳公司的座右铭“科学创…

拜尔滤光片

http://tieba.baidu.com/p/2608573237# 很好的一篇科普文&#xff0c;为作者打Call~

拜尔矩阵详解

拜耳阵列是实现CCD 或CMOS 传感器拍摄彩色图像的主要技术之一。它是一个44阵列&#xff0c;由8个绿色、4个蓝色和4个红色像素组成&#xff0c;在将灰度图形转换为彩色图片时会以22矩阵进行9次运算&#xff0c;最后生成一幅彩色图形。 下面摘自蜂鸟网&#xff08;写的挺有意思&a…