给大家看一个好玩儿的东西。在不同的显示器上,下面这张图片的显示效果可能大不相同。如果你用的是 TFT 屏幕,上下移动你的脑袋,调整你的视角,你也会看到不同的色彩。从低处往上看,你会看到一个白色的 MM 站在蓝色背景中;从高处往低看,你会看到一个黑色的 MM 站在黄色背景中。
现在,把上面这幅图片保存下来,用你最爱的图象处理软件打开,然后缩放到原图的 50% 。左图是图片缩小后理应得到的结果,但你会发现,你得到的结果是右边的这个图——一片灰色。
今天从 reddit 上看到了这个网页。根据它的解释,目前的绝大多数图象处理软件,包括 Photoshop 和 GIMP ,它们的图象缩放算法都有问题,错误的根源乃是对 gamma 值的错误假设。左图就是采用正确的图象缩放算法得到的图片,但几乎所有图象处理软件都会得到右边的这张图。该问题也普遍存在于图象查看程序里,甚至就在你用浏览器阅读这篇文章的时候,按几下 Ctrl + 减号 后你也会看到同样的错误。另外,由于同样的原因,缩放到其它尺寸、图片的旋转、使用某些滤镜也会出现各种奇怪的问题。具体的原理和更多学术讨论可以在上面那个网页中看到。原文中的图片很不和谐,因此我才根据其原理自己重做了一张。
果然不和谐。
忽忽~~
先用PICASA3确实是显示不出来,可是用Microsoft Picture manager却能出来左图。
哇,第一次挤到这么好的位置
确实不和谐得很
其实细细一想也没啥不和谐。
D.a.l.a.i L.a.m.a 的照片在未经他本人同意的情况下被搞成那副惨状是对奴隶主合理的抗议。
果然不和谐。
用QQ貌似可以……
啊,我的maxthon2可以啊
不和谐的不得了~~
chrome把它变成浮雕了>_<b
原图不错
果真不和谐……
果然不和谐
哈哈 果然你也看到这个了
能不能把原理大概解释一下啊 E文不太好 原文没太看懂
小白表示IE6+傲游2 ctrl+减号缩小出左图= =
看来IE战斗力还是很强的……
原来是downsampling with no antialias filter,受教了
我得到和左图完全一样的图了
原图在Mac电脑上显示的就是灰色的,只不过Windows很变态地把显示器默认gamma值调成了50%,也就是说显示器显示的颜色不是真正存储的颜色而是实际颜色数值的平方根。但是缩放程序处理的是实际存储的颜色,所以就会造成人看到的误差。
左图的制作方法:在PS里先点把查看的比例设成50%再点图像->调整->曲线,将平直的曲线向右下方拖动便会现出左图。
真的很不和谐啊><
确是用浏览器缩放就是灰色的..
那个果然不和谐……
还好嘛,蛮和谐的……真的……
你是怎么自己做出来这张图的..Orz
我乖乖的按照文章说的做了一次 果真如此啊 !
这就是传说中的失真吗?
神奇。。不过在firefox下面缩放到其中一个比例是灰色的,其他缩放比例都能正常显示,只是没有变色效果了,图片出现横杠。
任何一个图都可以有这效果,用单线素的间隔选区反向就可以了。
至于缩小,在PS里有选项,重定图像像素里面,如果选用邻近,则能真实反原原图;如果选用两次线性,则会出来灰图;如果选用两次立方,则会出现一个浮雕图。这个算法只和缩小图片时的取值有关,和伽玛曲线无关。
用windows画图来处理的话,那个MM变成黄蓝相间,背景变成紫绿相间。。。
至于上下看颜色会变的问题,很明显,液晶显示屏在角度变化的时候会反色。
把图放大就能看出着图的神秘
mm美图片,精点呀
我用TT缩至50%后,出现了蓝人紫底,看上去相当诡异
我做了一张更大的:http://corodidea.net/blog/wp-content/uploads/2010/02/011.jpg.magic.png
还有“魔鬼图生成器”: http://corodidea.net/blog/wp-content/uploads/2010/02/MagicMaker.exe(需.NET 3.5)
NERO竟然也挂 火狐倒是可以
好强,佩服
我看到了一幅色彩很优美的……
ImageMagicK 6.5.1 虽然没完全灰,但效果也很不好了 convert 201002241.png -resize 200×150 out.png
http://x.soulogic.com/out.png
26楼:“单线素的间隔选区”你拽的这个“专业词”我没看懂结果去google上搜索发现没有搜到结果——不懂就不要自编专业词好不好?
再有,你说“与gamma曲线无关”,拜托,gamma是一个校正值,说白了是一个数,懂不?不是一个曲线。。
Chrome浏览器正常,Ctrl+-依旧正常
对于不懂PS的人来说,单线素,选区,曲线,都是陌生的东西。
同十楼,确实不和谐。。。
确实不和谐,不过更不和谐的当上下滚动屏幕的时候,有那种图片的地方就遭罪了,简直就像在FP里F7。。。
用Xnview不停缩放可以得到不同效果..
貌似我怎么看都一样啊
真的不和谐
缩小了果然是变灰色了
safari表示略有压力
为什么原图是不和谐图呢?其实作者的内心是和谐的… 虐那个照片嘛…
26L正解
非线性缩放算法在这种情况下会导致bug
36楼雷死我了,什么人都有啊
我也看到一张彩色的,很漂亮的。比上面的那张彩色的要色彩亮一点。
写信告诉他,我们会做张希特勒的图回敬
亚克西~
这张图只有缩放到50%才会是全灰!
其他比例也会略有失真~但不会全灰!
呵呵,好像在PS放大时就是有好几种不同的算法 ,当时老师讲的时候他自己也不清楚BTW51楼来自新疆的?
支持26楼的说法
这张图只不过是在原图里每隔一个像素行(就是高度为一个像素,长度为图片长度的一行像素)
加了一条右图的灰色条纹而已
PS缩小50%的时候是隔行采样,正好全部采样到灰色像素行
然后就变成灰色图了
也有可能缩小50%正好采样到原图图像
那就得到左图了
你打开了我很久以来的很纠结的一件事。
以前编辑过一张奥黛丽赫本的图片,背景就是类似的条纹,
可是经过编辑后保存为jpeg格式的时候原本均匀的条纹变得混乱不堪。当时为这个问题纠结了好久,现在看来这两者之间应该有某种联系。
这张原图是怎么样的。
我来说下原因`这是因为算发采用的临近取样`图片宽跟缩放后是1/2也就是取点的时候全部取成基数或者偶数位这造成这样的结果`
IE8用户表示出左图,一切没问题。
我把这张图片和谐掉了!
http://hi.baidu.com/molly_kang/blog/item/e3ea9610f8c8c3cba7ef3f09.html
用画图缩放更搞笑
– –
原理其实很简单:
我们先规定左上角点的坐标为(0,0),横坐标向右递增,纵坐标向下递增;
观察图片,容易发现,坐标为(m,n)(m为小于图像宽度的非负偶数,n为小于图像高度的非负偶数)的点的颜色与坐标为(m+1,n)的点的颜色相同,与坐标为(m,n+1)和(m+1,n+1)的点的颜色恰好互补(即按1:1的比例混在一起恰好得到白色)。
这就可以解释主流图像处理软件为何遭遇如此尴尬。这些软件在将图像的长、宽分别缩小为原来的一半时,采用了取均色的算法:用R0(x,y)、G0(x,y)、B0(x,y)分别表示原图像(x,y)点的红、绿、蓝颜色分量,用R1(x,y)、G1(x,y)、B1(x,y)分别表示处理后的图像(x,y)点的红、绿、蓝颜色分量,那么有R1(x,y)=1/4(R0(2x,2y)+R0(2x+1,2y)+R0(2x,2y+1)+R0(2x+1,2y+1)),G1(x,y)及B1(x,y)计算方法类似,由于原图像具有上述的奇特性质,所以取平均数的结果只能是中灰色!PS和GIMP等只能眼睁睁地被骗!
而博主的缩小方法是取每一个田字形(2像素x2像素)区域的左下角或右下角的像素,效果当然不同。若取左上角或右上角的像素,还可以得到黄底黑人的图像。然而这种间隔选取的方法毕竟对于多数的图像是难以达到理想效果的。
原理其实很简单:
我们先规定左上角点的坐标为(0,0),横坐标向右递增,纵坐标向下递增;
观察图片,容易发现,坐标为(m,n)(m为小于图像宽度的非负偶数,n为小于图像高度的非负偶数)的点的颜色与坐标为(m+1,n)的点的颜色相同,与坐标为(m,n+1)和(m+1,n+1)的点的颜色恰好互补(即按1:1的比例混在一起恰好得到白色)。
这就可以解释主流图像处理软件为何遭遇如此尴尬。这些软件在将图像的长、宽分别缩小为原来的一半时,采用了取均色的算法:用R0(x,y)、G0(x,y)、B0(x,y)分别表示原图像(x,y)点的红、绿、蓝颜色分量,用R1(x,y)、G1(x,y)、B1(x,y)分别表示处理后的图像(x,y)点的红、绿、蓝颜色分量,那么有R1(x,y)=1/4(R0(2x,2y)+R0(2x+1,2y)+R0(2x,2y+1)+R0(2x+1,2y+1)),G1(x,y)及B1(x,y)计算方法类似,由于原图像具有上述的奇特性质,所以取平均数的结果只能是中灰色!PS和GIMP等只能眼睁睁地被骗!
而博主的缩小方法是取每一个田字形(2像素x2像素)区域的左下角或右下角的像素,效果当然不同。若取左上角或右上角的像素,还可以得到黄底黑人的图像,故。然而这种间隔选取的方法毕竟对于多数的图像是难以达到理想效果的。
很好!
跟个百叶窗一样
果然连firefox都不可以了。。
果然不和谐