★色盲悖论正解!

假设:有一个人,他有一种奇怪的色盲症。他看到的两种颜色和别人不一样,他把蓝色看成绿色,把绿色看成蓝色。
  但是他自己并不知道他跟别人不一样,别人看到的天空是蓝色的,他看到的是绿色的,但是他和别人的叫法都一样,都是“蓝色”;小草是绿色的,他看到的却是蓝色的,但是他把蓝色叫做“绿色”。所以,他自己和别人都不知道他和别人的不同。
  
  问:怎么让他知道自己和别人不一样?
  
  注:有人说让他水彩画画,比如说画蓝天绿草,他画出来的肯定是绿天蓝草,而别人的是蓝天绿草。
  这个回答是错误的,因为:画蓝天时,他脑中想的是绿色,而他拿起的笔也是他脑中的绿色,也就是别人眼中的蓝色,所以他画出来的仍然是大家眼中的蓝天绿草。
————————————————————————————————————————

下面是我见过的一些的解法,由浅到深一一罗列出来,逐个分析。
注:为了方便区分,以下凡是用英语标出的颜色,是脱离概念的,是人眼中感觉到的颜色,例如他听到“蓝色”这个词,脑海中浮现的是Green,然后拿起了蓝笔。

1.
首先,这并不是某些人认为的“低水准问题”,以为拿个绿色的牌牌,告诉他“这是绿色”就OK了?人家本来就把绿色的牌牌叫做“绿色”,还用你告诉?像某安焱那种自以为是又到处鄙视别人的,大家无视。

2.
有相当一部分人认为他画的就应该是“绿天蓝草”,认为题目的那个“注”是错的。所以我有必要把那个注解再解释一下:
题目说的很清楚,正常的“蓝色”在他眼中是“Green”,但由于这个倒霉蛋对颜色的认知是从别人得来,所以在他口中依然是“蓝色”。
也就是说,正常的“蓝色”,无论是颜色还是字符,他都称之为“蓝色”,只是在他眼中是Green。
结论来了,蓝色的天空、蓝色的画笔、“蓝”这个概念,在他眼里都是同一种颜色(Green)。
同样也有,绿色的草地、绿色的画笔、“绿”这个概念,在他眼里也是同一种颜色(Blue)。
所以让他画天,他心里想的是Green,当然就会拿蓝笔,口中说的也是“拿蓝笔”这句话。绿草也是一样,他画草的时候会拿绿笔。

3.
然后再排除部分人的那种相当不负责任的做法:“给他个绿色的东西,告诉他,这个其实叫做蓝色”
这根本不可行,他完全不知道自己与常人不同,也无法从眼中观察到。你直接告诉他,他能相信吗?
换成你自己想想,你也是完全不知道自己的异常,和正常人一样,把天叫蓝,把草叫绿。现在我拿捆韭菜告诉你“这个其实叫做蓝色”,你信吗?

4.
关于“色温”与“色感”。
有些人说,给他蓝绿两种颜色,问他哪种颜色给你带来“寒冷”的感觉?(或类似问题,比如哪种舒心,哪种温和等)
色感法的依据是:蓝色是冷色,他眼中的Blue一定也是冷色,所以他会说出“绿色是冷色”等错误观点。
其实这个方法也是不可行的。蓝色给我们寒冷的感觉,是因为自然中很多寒冷的东西都是蓝色的,比如冰山、深海、高空等。但这些东西在倒霉蛋眼里统统是Green,所以对他而言,Green更有“寒冷”的感觉,那么他仍然会回答“蓝色是冷色”。
★说抽象一点,倒霉蛋对于自己眼中Green的认知,完全相当于正常人对Blue的认知,包括名称、实体、色温等一切概念,统统称之为“蓝”。

5.
关于“混色法”。
能排除上面几种方法想到这里,也是逻辑思维比较严谨的了。这个问题解释起来是最难的,也不一定每个人都看得懂。
混色法的依据是:正常颜色中,黄色更接近于绿色,紫色更接近于蓝色,而对于此人,黄色应该更接近蓝色,紫色应该更接近绿色才对。
(混色法还有一些变数,如根据蓝+黄=绿,让他配色等等,实质都一样)
★这种方法的成功与否,有一个大前提,那就是:此人眼中只有蓝和绿两种颜色不正常,其余颜色都正常。
而题目并没给这个条件,所以就有以下两种可能:
①,此人眼中只有蓝绿两色不正常,其余颜色都正常。
②,此人眼中不仅蓝绿两色不正常,相应的,一切含有蓝或绿色素的颜色都不正常。
题目没给这个条件,那么我们可以尝试推断一下,哪种情况才是可能存在的:
正常的颜色带(只给出半条)如图1:
黄-柠檬绿-绿-翠绿-青-海蓝-蓝-蓝紫-紫
如果此人的病症如①所述,那么在他眼里,柠檬绿就是柠檬绿,更接近他眼中的Green,也就是“蓝”,蓝紫就是蓝紫,更接近他眼中的Blue,也就是“绿”。
那么不用旁人提醒,他自然会产生疑问:“为什么这些像蓝色(Green)的颜色要被称为‘柠檬绿’、‘翠绿’?为什么这种像绿色(Blue)的颜色要被称为‘海蓝’、‘蓝紫’?”
这样下去,他自己就会发现自己的异常。那么为什么他无法发现呢?只剩一种可能,就是:
在他眼里,柠檬绿、翠绿是更接近蓝色(Blue)的,蓝紫、海蓝是更接近绿色(Green)的。
同时,柠檬绿应该更接近于黄色(柠檬是黄色的),蓝紫应该更接近紫色,他才不会对颜色的命名产生怀疑。
★还可以从另一个角度来分析:如果按①所述,他的颜色带的“纯绿”和“纯蓝”两处一定会产生突变(如图1下半部分),那么问题来了,多纯的绿算纯绿呢?00FF00?那00FF01算不算呢?就算确定了这个界限,那么处于这个界限上的颜色算什么颜色呢?
再想想,如果有突变点,那么我拿蓝绿两种颜料仔细调出这个点。在常人眼里看来就是一片颜色(比如柠檬绿),但倒霉蛋看这个调色盘时,由于调色总会有极小的不均匀,某些地方蓝多某些地方绿多,他眼里就会出现一块块柠檬绿与蓝色相间的花斑?并随着液体对流而不断蠕动???显然这是十分荒谬的。所以①的情况是站不住脚的。
由此可得出,他的病症一定是②中所述,混色法的大前提不存在了,混色法自然就不会成功。

 

 

 


既然我们已经推到了这个地步,不进一步挖掘好像对不起这份努力吧?来,下面大家和我一起继续深究,看看这个倒霉蛋眼中的真实景像~
“既接近黄色又接近蓝色?既接近绿色又接近紫色?”——显然,这样的颜色是不存在的!那么我们不仅可以推出②的正确,更可以推出如下结论:
★在他眼里,一切带有绿色素的颜色都不正常,其中的绿色素被换成了蓝色素。一切带有蓝色素的颜色也都不正常,其中的蓝色素被换成了绿色素。——只有这个结论才能解释上面的色带问题。
有了这个结论,我们甚至可以画出他眼中的图谱了!也就是颜色圈。由于蓝绿色素的互换,他眼中的颜色只有两个是完全正常的!
一个是红色,它根本不含蓝、绿色素,所以完全不受影响。
一个是青色,它的蓝绿色素恰好各占一半,换了等于没换。
★所以,他眼中的颜色圈,应该是正常颜色圈以红、青之间的连线为轴,翻转180度而得到的,如图2所示:
左半部分为正常人眼中的颜色,文字为对应名称,右半部分为倒霉蛋的。

 

 

 


分析到了这里,我们可以得出这样的结论:★此人能区分各种颜色,他对于颜色的“认知”无异于常人,只是各种颜色在他眼中与常人不相同罢了。(这个“在他眼中”,不太好解释,我们可以理解为视神经对脑部的某种刺激?算了,反正大家都明白是怎么回事)
——事实上,我们不同的人所看到的颜色,又有谁能保证是一模一样呢?也许你眼中的蓝色就是我眼中的绿色,但又有谁会知道并且证明出来呢?所以说这个人根本不能称为是色盲。
话说回来,其实最无聊的还是出题的人,您是怎样发现倒霉蛋的异常的呢?能发现必然能告诉他……这个题目本身都超出了逻辑范围,自然就无所谓答案了,就像那道男孩女孩挑箱子一样。

图画了好几张,字也打了这么多,索性一做到底~。我找了一张色彩丰富的图片,并用PS把其中所有的“蓝色素”与“绿色素”互相替换,得出了一张新的图片,依题意,这就是那个倒霉蛋眼中的图像。但无论你指向图中任何一点,他都能正确说出该处的颜色名称,比如你指着那个大汉堡问他,虽然在他眼睛里是Rose,但他对这个颜色的一切概念就是“橙色”。
作为补充,我又做一张真正的“蓝绿色盲”眼中的图像,真正蓝绿不分的那种,最下面那张就是。
说不定,你眼中的“上图”就是别人眼中的“中图”哦^_^
图片是刚出炉的,版权所有,仿冒必究   

 

### 回答1: 色盲是一种常见的视觉缺陷,影响了很多人的日常生活。为了帮助人们及时了解自己是否色盲,我们可以使用C语言来实现一个简单的色盲检测系统。 首先,我们需要收集一些色盲测试图片,这些图片上会有一些特定的图案和颜色组合,可以帮助识别色盲。在程序中,我们可以将这些图片存储为二维数组,每个像素点代表一个颜色。 接下来,我们需要实现一个功能,让用户输入自己看到的颜色,并进行判断是否为色盲。我们可以使用C语言中的控制语句和条件语句来实现该功能。通过遍历图片的像素点,将用户输入的颜色与图片中的颜色进行对比,判断用户是否识别正确。 为了提高判断的准确性,我们还可以引入一些色盲检测算法,比如色弱模拟算法。该算法可以将正常人识别的颜色转换为色盲人可以辨别的颜色,从而帮助色盲人更好地认识自己的视觉情况。 最后,我们可以根据用户的回答,输出一个结果,告诉用户是否为色盲。这个结果可以用文字描述,也可以用图形化界面显示,更加直观地展示给用户。 通过以上的步骤,我们可以实现一个简单的色盲检测系统。用户可以通过该系统来了解自己是否色盲,并及时采取相应的措施,提高生活质量。当然,为了更加准确地进行色盲检测,我们还可以引入更多的色盲测试方法和算法,众多的研究和验证,以提供更准确的结果。 ### 回答2: 要实现色盲检测系统,可以使用C语言结合图像处理技术来实现。 首先,需要使用C语言读取和处理图像。可以使用C语言中的图像处理库,如OpenCV,来读取图像文件,并对图像进行处理。通过读取每个像素的RGB值,可以获取图像的颜色信息。 接下来,要实现色盲检测,可以使用颜色转换算法来将RGB颜色空间转换为其他颜色空间,如Lab颜色空间或HSV颜色空间。这些颜色空间将颜色信息分成不同的分量,使得检测色盲更加容易。 在转换为其他颜色空间后,可以通过计算颜色分量之间的差异来判断是否存在色盲。例如,对于红绿色盲,可以通过比较红色和绿色分量的值来判断。如果两者相差较小,就可能存在色盲。 最后,可以根据色盲检测的结果,给出相应的提示或建议,以帮助色盲者更好地区分颜色。可以使用C语言的控制语句和输出函数,如if语句和printf函数,根据检测结果输出相应的信息。 总之,要实现色盲检测系统,需要用C语言读取和处理图像,通过颜色转换算法转换颜色空间,并通过计算颜色分量之间的差异来判断是否存在色盲。最后,根据检测结果输出相应的提示或建议。这样就可以用C语言实现一个简单的色盲检测系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xosg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值