百科问答小站 logo
百科问答小站 font logo



彩色图片是通过何种算法变成黑白图片? 第1页

  

user avatar   xia-yang-7 网友的相关建议: 
      

我来补充一个当年二师兄

@卢策吾

的一篇非常有趣的作品:

Contrast Preserving Decolorization

,已被收录进

OpenCV 3.0及之后的版本中

简单来说,目前市面上绝大多数的彩色转黑白都是通过一个确定的函数Gray=f(R,G,B)将彩色空间映射到灰度空间。然而很容易想到的是,对于任何一个『事先确定好』的映射,我们总是能找到一些『坏』的数据,使得原先还算正常的彩图变成『很糟糕』的灰度图。例如:

理由也很简单:毕竟彩色空间到灰度空间降了两个维度,对于『事先确定好』的映射函数f,我们总是能找到颜色略有不同但灰度接近的情况。

那么如果我们换一个思路:这个映射函数本身是根据输入图像动态计算出来的。换句话说,对于不同的图,这个映射函数可以是不一样的!即使是同一个颜色,在不同的图像中也可能被映射成不同的灰度。这听起来似乎有点奇怪,但其实也合理——为什么非得一样呢?

于是我们回到问题的源头来思考:彩色转黑白的目的是什么?比如相当常见的一种情况就是印刷。如果产生灰度图最终的目的是给人(或者某些算法)来看的话,人们关心的未必是『不同图片里的同一种颜色必须要映射成同一级灰度』。更多的时候,是『原来彩图里的东西(物体、结构)转换成黑白也要能看得清』。

因此,二师兄这篇文章的重点在于,在转化映射函数的过程中尽量『保持图像的对比度不变』。原文的关键是一个最高不超过二次的多项式模型,以及一套用来保持对比度的optimization方法,不过我不打算在这里展开数学细节,大家可以自己慢慢读文章理解,但保持对比度的这个思路我觉得是相当有意思的。贴几张效果图感受一下:




  

相关话题

  如何评价全新的图片格式BPG,它会在将来彻底取代JPG吗? 
  世界上有哪些代码量很少,但很牛逼很经典的算法或项目案例? 
  在图像处理中,散度 div 具体的作用是什么? 
  Photoshop 不支持编辑钞票图片吗? 
  image caption这个方向更偏向NLP还是CV? 
  如何还原被摄像机透视的图形? 
  很多高效排序算法的代价是 nlogn,难道这是排序算法的极限了吗? 
  想问下专业人士 OpenCv会被深度学习进一步取代吗进一步取代吗? 
  两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)? 
  「哈维尔事件」视频是如何做出来的?我们应该如何甄别视频的真假? 

前一个讨论
抗战时期国军将领中有哪些话曾让人印象深刻?
下一个讨论
马前卒为什么这么博学多才?





© 2025-04-26 - tinynew.org. All Rights Reserved.
© 2025-04-26 - tinynew.org. 保留所有权利