彩色转黑白的算法 RGB to grayscale

女友突然觉得黑白是原图之外最喜欢的滤镜,曾经在做LED控制卡的公司成长时,对色彩也有一定的学习,黑白照片就是全由三基色值相同 R=G=B=(0~100%)的像素组成的照片

小时候的黑白电视机屏幕,其实就是将不同亮度的光投射到整个屏幕,有时候仔细看屏幕上一块黑色的部分,感觉和电视关机的时候一样,很好奇,其实就是没点亮,就是亮度值为0。如果将亮度值划分成256个区间,那么深黑的亮度值是#00,最白时,亮度值就是#FF,这个值也叫灰度(grayscale)值

那么彩色照片如何转换成黑白照片了,因为彩色照片的RGB值各不相同, MATLAB帮助文档中的算法是这样的

rgb2gray converts RGB values to grayscale values by forming a weighted sum of the R, G, and B components:

0.2989 * R + 0.5870 * G + 0.1140 * B 

通过css滤镜实现网页变黑白变灰度

html{
    filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
    filter: grayscale(100%);
}

JavaScript 照片灰度处理DEMO

Leave a Reply

Your email address will not be published. Required fields are marked *