视觉欺骗:你绝不会相信A和B颜色相同!

视觉欺骗:你绝不会相信A和B颜色相同!心理导读:图中标为A和B的两个方格其实具有相同的颜色。明明一黑一白的方格,EdwardH.Adelson却说它们颜色一样!到底应该相信科学家还是自己的眼睛?——www.xinli001.com要证明其实很简单,请下载这张图片,然后用任何可以取色的图像处理软件打开它,接着用取色工具提取A、B方格的颜色值。下图是本图在Paint.NET里面的取色结果。可以看出,A、B方格的

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

Jetbrains全家桶1年46,售后保障稳定

心理导读:图中标为A和B的两个方格其实具有相同的颜色。明明一黑一白的方格,Edward H. Adelson 却说它们颜色一样!到底应该相信科学家还是自己的眼睛? ——www.xinli001.com

视觉欺骗:你绝不会相信A和B颜色相同!

要证明其实很简单,请下载这张图片,然后用任何可以取色的图像处理软件打开它,接着用取色工具提取A、B方格的颜色值。下图是本图在 Paint.NET 里面的取色结果。可以看出,A、B方格的颜色同为RGB(120, 120, 120)。

视觉欺骗:你绝不会相信A和B颜色相同!

如果再用两条颜色值同为RGB(120, 120, 120)的竖条将A、B方格连接起来,就能非常明显地看出A、B方格一般货色。

视觉欺骗:你绝不会相信A和B颜色相同!

 

可是,这是为什么呢?本人翻译了Edward H. Adelson的解释。

人类视觉系统的一项重要任务就是辨识物体的颜色。本案例阐释了当它辨识平面上不同色块的灰度值时遇到的问题。

当大脑辨识颜色时,仅仅测量物体表面的反射光线(亮度)是不够的:影子会使物体的表面变得暗淡,从而使得阴影中的白色表面反射的光线反而少于完全光照下的黑色表面。我们的视觉系统玩了几个小把戏来弥补这个不足,以更精确地识别物体表面的阴影。

把戏一、大脑基于对比度的猜想:

无论色块是否在阴影之中,只要它比相邻色块都要亮,大脑就认为它的亮度肯定高于所有色块亮度的平均值。本图中,看似较亮的色块B被暗色块包围着,这样即使它实际的颜色是暗的,大脑仍然认为它比较亮。相反,看似较暗的色块A被比它亮的色块包围,因而大脑认定它比较暗。

把戏二、大脑对于阴影的边缘通常是柔和的,而色块的边缘通常是锐利的假想:

视觉系统总是倾向于忽略亮度上的渐变,以便于识别物体表面的真实颜色而不至于被阴影的效果所误导。本图中的人造阴影之所以看上去像真的阴影,就是因为它的边缘是模糊的,而且造成阴影的圆柱也很明显。但其实它不是阴影,于是我们的视觉系统被欺骗了,在并没有阴影的表面上启动了“忽略亮度上的渐变”的程序。

本图采用 “X交叉-四相邻” 模式构图,这种构图方式给大脑信号是物体表面真正的颜色改变而非阴影或亮度造成的颜色改变。

上述种种错觉产生的效果实际上证明了视觉系统的优点而非缺陷。虽然从物理学角度来说,我们的视觉系统并不是台称职的摄像机,对于测量实际的亮度和色彩很多时候力不从心。但精确测量并不是它的目标,视觉系统的终极目标是把接收到的图像转换成有意义的独立信息,然后再重新筛选、组合重要信息,从而让人类更好地感知自然界。

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/230782.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • ASP.NET Session详解[通俗易懂]

    ASP.NET Session详解[通俗易懂] (一)描述当用户在Web应用程序中导航ASP.NET页时,ASP.NET会话状态使您能够存储和检索用户的值。HTTP是一种无状态协议。这意味着Web服务器会将针对页面的每个HTTP请求作为独立的请求进行处理。服务器不会保留以前的请求过程中所使用的变量值的任何信息。ASP.NET会话状态将来自限定时间范围内的同一浏览器的请求标识为一个会话,当每个用户首次与这台W

  • undefined pthread_create_pthread_key_create

    undefined pthread_create_pthread_key_create#include#includeusingnamespacestd;HANDLEhMutex;DWORDWINAPIthreadFun(LPVOIDlpParamter){char*p=(char*)lpParamter; while(1){ WaitForSingleObject(hMutex,INFINITE)

  • 什么是敏捷开发流程

    什么是敏捷开发流程这里是修真院后端小课堂,每篇分享文从【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】八个方面深度解析后端知识/技能,本篇分享的是:【什么是敏捷开发流程】这个词猛一听起来感觉很高大上,其实现在已经是主流的团队开发流程了。一.先说一下官方的定义:敏捷不是指某一种具体的方法论、过程或框架,而是一组价值观和原则。符合敏捷价值观…

  • 正则替换括号但保留内容(常用的正则表达式)

    正则表达式保留部分内容替换需求:把trim(ABC)替换成trim(replace(ABC,char(9),”)需要把ABC保留不变,替换其它的。实现:trim\(([^).]*)\)替换成trim\(replace\($1,char\(9\),”\)在查找的时候用括号括起来的代表一部分,在替换的时候可以用$1,$2…引用。注意:有写编…

  • native/ascii在线转换工具_中文转ascii

    native/ascii在线转换工具_中文转ascii1,原理Property文件中,使用的编码根据机器的设置可能是GBK或者UTF-8。而在Java中读取Property文件时使用的是Unicode编码,编码方式不同会导致中文乱码,因此需要将Property文件中的中文字符转化成Unicode编码才能正常显示中文。2,解决办法Java提供了native2ascii这种专门的工具对Property文件进行编码转换,在JDK安装环境的bin目录下可以找…

  • Spark DataFrame简介(一)

    Spark DataFrame简介(一)

    2021年11月27日

发表回复

您的电子邮箱地址不会被公开。

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