精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

有趣的6種圖片灰度轉換算法

開發 算法
這是一篇很有趣的文章,不僅僅是介紹灰度算法,對了解圖片的處理過程也很有幫助。

 6種圖片灰度轉換算法

【引自楊敬卓的博客】前言

黑白照片的時代雖然已經過去,但現在看到以前的照片,是不是有一種回到過去的感覺,很cool有木有~

看完這篇文章,就可以把彩色照片變成各種各樣的黑白的照片啦。

本文完整的在線例子圖片灰度算法例子,例子的圖片有點多,可能有些慢。

例子的源碼位于blog/demo

三原色與灰度

原色是指不能透過其他顏色的混合調配而得出的“基本色”。一般來說疊加型的三原色是紅色、綠色、藍色,以不同比例將原色混合,可以產生出其他的新顏色。這套原色系統常被稱為“RGB色彩空間”,亦即由紅(R)綠(G)藍(B)所組合出的色彩系統。

當這三種原色以等比例疊加在一起時,會變成灰色;若將此三原色的強度均調至***并且等量重疊時,則會呈現白色。灰度就是沒有色彩,RGB色彩分量全部相等。

獲取圖片的像素數據

算法不區分語言,這里以前端舉例。可以使用canvas取得圖片某個區域的像素數據

  1. //偽代碼 
  2. var img = new Image(); 
  3. img.src = 'xxx.jpg'
  4. var myCanvas = document.querySelector(canvasId); 
  5. var canvasCtx = myCanvas.getContext("2d"); 
  6. canvasCtx.drawImage(img, 0, 0, img.width, img.height); 
  7. //圖片的像素數據 
  8. var data = canvasCtx.getImageData(0, 0, img.width, img.height);  

使用getImageData()返回一個ImageData對象,此對象有個data屬性就是我們要的數據了,數據是以Uint8ClampedArray 描述的一個一維數組,包含以 RGBA 順序的數據,數據使用 0 至 255(包含)的整數表示。 所以,一個像素會有4個數據(RGBA),RGB是紅綠藍,A指的是透明度。

舉個例子:本文720*480的水果圖片,一共有720 * 480 = 259200像素,每個像素又有4個數據,所以數據數組的總長度為259200 * 4 = 1036800。

可以看到圖片的數據很長,如果一次性處理很多圖片的時候,計算量相當可觀,所以例子中會使用worker,把繁重的計算任務交給后臺線程。

算法的基本步驟

  1. 取得每一個像素的red,green,blue值。
  2. 使用灰度算法,算出一個灰度值。
  3. 用這個灰度值代替像素原始的red,green,blue值。

比如我們的灰度算法是:

  1. Gray = (Red + Green + Blue) / 3 

計算過程:

  1. //偽代碼 
  2. for(var Pixel in Image){ 
  3.   var Red = Image[Pixel].Red 
  4.   var Green = Image[Pixel].Green 
  5.   var Blue = Image[Pixel].Blue 
  6.  
  7.   var Gray = (Red + Green + Blue) / 3 
  8.  
  9.   Image[Pixel].Red = Gray 
  10.   Image[Pixel].Green = Gray 
  11.   Image[Pixel].Blue = Gray 
  12.  

很簡單對吧。

很多好吃的鮮艷水果,但是它們馬上要變灰了!!   

 

算法1 - 平均法

使用算法1:   

 

這是最常見的灰度算法,簡單暴力,把它放到***位。公式是:

  1. Gray = (Red + Green + Blue) / 3 

這個算法可以生成不錯灰度值,因為公式簡單,所以易于維護和優化。然而它也不是沒有缺點,因為簡單快速,從人眼的感知角度看,圖片的灰度陰影和亮度方面做的還不夠好。所以,我們需要更復雜的運算。

算法2 - 基于人眼感知

使用算法2:   

 

算法1與算法2生成的圖片似乎沒太大差別,所以增加一個例子,將圖片上半部分用算法1,下半部分用算法2。

上半部分是算法1,下半部分是算法2:   

 

仔細看的話,中間有一根黑線。上半部分(算法1)比下半部分(算法2)更蒼白一些。如果還是看不出來,注意最右邊的檸檬,算法1的檸檬反光更強烈,算法2的檸檬更柔和。

第二種算法考慮到了人眼對不同光感知程度不同。人的眼睛內有幾種辨別顏色的錐形感光細胞,分別對黃綠色、綠色和藍紫色的光最敏感。雖然眼球中的椎狀細胞并非對紅、綠、藍三色的感受度***,但是由肉眼的椎狀細胞所能感受的光的帶寬很大,紅、綠、藍也能夠獨立刺激這三種顏色的受光體。

人類對紅綠藍三色的感知程度依次是: 綠>紅>藍,所以平均算法從這個角度看是不科學的。應該按照人類對光的感知程度為每個顏色設定一個權重,它們的之間的地位不應該是平等的。

一個圖像處理通用的公式是:

  1. Gray = (Red * 0.3 + Green * 0.59 + Blue * 0.11) 

可以看到,每個顏色的系數相差很大。

現在對圖像灰度處理的***公式還存在爭議,有一些類似的公式:

  1. Gray = (Red * 0.2126 + Green * 0.7152 + Blue * 0.0722)  

or 

  1. Gray = (Red * 0.299 + Green * 0.587 + Blue * 0.114)  

它們只是在系數上存在一些偏差,大體的比值差不多。

算法3 - 去飽和

使用算法3:   

 

在說這個算法之前,先說說RGB,大多數程序員都使用RGB模型,每一種顏色都可以由紅綠藍組成,RGB對計算機來說可以很好的描述顏色,但對于人類而言就很難理解了。如果升國旗的時候說,“五星紅旗多么RGB(255, 0, 42)”,可能會被暴打一頓。但我說鮮紅的五星紅旗,老師可能會點頭稱贊。

所以為了更通俗易懂,有時我們選擇HLS模型描述顏色,這三個字母分別表示Hue(色調)、Saturation(飽和度)、Lightness(亮度)。色調,取值為:0 - 360,0(或360)表示紅色,120表示綠色,240表示藍色,也可取其他數值來指定顏色。飽和度,取值為:0.0% - 100.0%,它通常指顏色的鮮艷程度。亮度,取值為:0.0% - 100.0%,黑色的亮度為0。

去飽和的過程就是把RGB轉換為HLS,然后將飽和度設為0。因此,我們需要取一種顏色,轉換它為最不飽和的值。這個數學公式比本文介紹的更復雜,這里提供一個簡單的公式,一個像素可以被去飽和通過計算RGB中的***值和最小值的中間值:

  1. Gray = ( Math.max(Red, Green, Blue) + Math.min(Red, Green, Blue) ) / 2 

去飽和后,圖片立體感減弱,但是更柔和。對比算法2,可以很明顯的看出差異,從效果上看,可能大多數人都喜歡算法2,算法3是目前為止,處理的圖片立體感最弱,最黑暗的。

算法4 - 分解

取***值  

 

取最小值   

 

分解算法可以認為是去飽和更簡單一種的方式。分解是基于每一個像素的,只取RGB的***值或者最小值。

***值分解:

  1. Gray = Math.max(Red, Green, Blue) 

最小值分解:

  1. Gray = Math.min(Red, Green, Blue) 

正如上面展現的,***值分解提供了更明亮的圖,而最小值分解提供了更黑暗的圖。

算法5 - 單一通道

取紅色通道  

 

取綠色通道   

 

取藍色通道  

 

圖片變灰更快捷的方法,這個方法不用做任何計算,取一個通道的值直接作為灰度值。

  1. Gray = Red 

or

  1. Gray = Green 

or

  1. Gray = Blue 

不管相不相信,大多數數碼相機都用這個算法生成灰度圖片。很難預測這種轉換的結果,所以這種算法多用于藝術效果。

算法6 - 自定義灰度陰影

NumberOfShades = 4    

 

這是到目前為止最有趣的算法,允許用戶提供一個灰色陰影值,值的范圍在2-256。2的結果是一張全白的圖片,256的結果和算法1一樣。

NumberOfShades = 16   

 

該算法通過選擇陰影值來工作,它的公式有點復雜

  1. ConversionFactor = 255 / (NumberOfShades - 1) 
  2.  
  3. AverageValue = (Red + Green + Blue) / 3 
  4.  
  5. Gray = Math.round((AverageValue / ConversionFactor) + 0.5) * ConversionFactor  
  • NumberOfShades 的范圍在2-256。
  • 從技術上說,任何灰度算法都可以計算AverageValue,它僅僅提供一個初始灰度的估計值。
  • “+ 0.5” 是一個可選參數,用于模擬四舍五入。

小節

這是一篇很有趣的文章,不僅僅是介紹灰度算法,對了解圖片的處理過程也很有幫助。

責任編輯:龐桂玉 來源: github.com
相關推薦

2020-11-04 09:52:16

Python讀取圖片開發

2024-03-18 09:44:02

HashMap算法Java

2021-05-10 11:53:13

頁面替換算法

2021-09-28 10:32:53

循環類型useEffect

2012-05-28 09:16:12

Java設計模式

2021-06-11 00:11:23

GPS數據協議

2021-11-26 11:07:14

cowsay命令Linux

2021-10-14 06:52:47

算法校驗碼結構

2022-03-10 08:59:59

傅里葉變換算法系統

2019-11-25 14:24:24

機器學習算法數據

2022-07-13 11:49:18

接口遷移方案

2022-03-12 20:12:08

希爾排序數組插入排序

2023-03-26 12:41:46

2024-03-12 12:49:17

Python算法

2014-12-01 09:54:40

JavaScript

2011-05-18 14:33:20

MySQL

2025-04-07 04:20:00

Linux操作系統內存管理

2021-12-03 11:30:58

Python圖片像素風

2014-10-31 10:50:28

Linux命令行工具

2010-08-04 14:17:54

白領
點贊
收藏

51CTO技術棧公眾號

成人午夜一级二级三级| 夜夜躁日日躁狠狠久久88av| 国产h视频在线播放| 国产中文在线| 国产精品一区一区| 国产91精品久久久久久久| 亚洲天堂精品一区| 精品嫩草影院| 欧美精品第一页| av网站手机在线观看| www.黄在线观看| 丁香一区二区三区| 国产精品视频一区二区高潮| 一区二区三区的久久的视频| 亚洲天堂免费av| 亚洲承认在线| 最近免费中文字幕视频2019| 中文字幕无码人妻少妇免费| 国产精品欧美一区二区三区不卡| 欧美日韩中文字幕| 成人高清dvd| 高h视频在线| 99视频在线观看一区三区| 成人免费观看a| 久久久黄色大片| 国内精品久久久久国产盗摄免费观看完整版 | 日韩中文在线播放| 亚洲成av人片在线| 成人性做爰片免费视频| av片在线免费观看| 久久―日本道色综合久久| 成人免费在线看片| 国产xxxx孕妇| 国内外成人在线视频| 美女精品久久久| 欧美日韩中文字幕视频| 亚洲第一论坛sis| 亚洲成色www8888| 性高潮久久久久久| 午夜精品久久久久久毛片| 在线看不卡av| 97视频在线免费播放| 超碰激情在线| 午夜精品福利一区二区蜜股av| av动漫在线播放| 在线中文字幕电影| 亚洲在线视频免费观看| 欧美国产综合在线| 韩国成人免费视频| 亚洲午夜精品在线| 欧美精品久久久久久久久久久| 三级资源在线| 亚洲在线一区二区三区| 日韩视频免费播放| 亚洲精品88| 欧美性xxxxx| 日韩精品一区二区三区不卡| 婷婷午夜社区一区| 在线观看日产精品| 男女视频在线看| 日日夜夜精品| 日韩一区二区视频| 国产一精品一aⅴ一免费| 草草视频在线一区二区| 精品久久久久久久久久久院品网 | 中文字幕在线2018| 久久er99热精品一区二区| 91免费国产视频| www.五月婷| 99re在线视频这里只有精品| 欧美日韩在线观看一区二区三区| 丁香在线视频| 亚洲女同一区二区| 欧美精品自拍视频| 国产精品亚洲一区二区三区在线观看| 欧美综合亚洲图片综合区| 国产福利在线免费| 日韩精品视频一区二区三区| 亚洲国产成人在线播放| 五月天综合视频| 999国产精品999久久久久久| 欧美福利视频在线观看| 久久黄色精品视频| 久久99国内精品| 国产精品久久久久免费| 精品久久av| 亚洲日本在线a| 777777av| 婷婷成人av| 日韩国产高清污视频在线观看| 免费看91的网站| 欧美高清不卡| 日韩av电影在线网| 国产日韩在线观看一区| 99视频精品全部免费在线| 亚洲v日韩v欧美v综合| 午夜影院免费在线| 色中色一区二区| 绯色av蜜臀vs少妇| 精品国产精品| 久久男人的天堂| 亚洲综合五月天婷婷丁香| 不卡一二三区首页| 五月天综合婷婷| 中文在线免费视频| 日韩久久免费av| 日本一二三不卡视频| 一区二区三区高清视频在线观看| 国产在线观看不卡| 六十路在线观看| 午夜影院久久久| 日韩视频在线观看一区二区三区| 欧美极品中文字幕| 久久久久久久国产精品视频| 亚洲一区 中文字幕| 久久精品在线免费观看| 国产精品www在线观看| 91麻豆精品| 亚洲日本中文字幕| 青青草av在线播放| 国产成人激情av| 视色,视色影院,视色影库,视色网| 久久久一本精品| 日韩精品高清在线| 日本少妇性高潮| 国产成人免费视频网站| 亚洲午夜精品久久| 成人涩涩视频| 亚洲欧美中文日韩v在线观看| 久草网视频在线观看| 国产在线视频不卡二| 一区二区三区四区国产| 大胆人体一区二区| 亚洲精品一区二三区不卡| 亚洲视频免费播放| 99re成人精品视频| 国产原创中文在线观看 | 高清毛片在线观看| 欧美mv日韩mv亚洲| 黄色一级视频免费| 国产不卡视频一区二区三区| 精品国产三级a∨在线| 精品国产18久久久久久二百| 久久久精品中文字幕| 国产免费高清视频| 亚洲欧洲制服丝袜| 国产成人精品综合久久久久99| 亚洲成人二区| 亚洲综合自拍一区| 国产乱码在线| 亚洲激情第一页| 五月天婷婷激情| 国产午夜亚洲精品不卡| 无限资源日本好片| 天天综合精品| 不卡视频一区二区| 碰碰在线视频| 国产小视频国产精品| 亚洲天堂免费av| 亚洲欧美福利一区二区| 最新中文字幕日本| 亚洲一区二区网站| 色播五月综合| 成人51免费| 欧美激情2020午夜免费观看| 婷婷色在线视频| 日本韩国欧美三级| 成人免费视频国产免费观看| 成人永久看片免费视频天堂| 极品美女扒开粉嫩小泬| 国产亚洲第一伦理第一区| 成人黄色av播放免费| 国产经典三级在线| 亚洲性线免费观看视频成熟| 国产一区二区三区在线观看| 亚洲一区二区黄色| 国产亚洲精品熟女国产成人| 精品亚洲免费视频| 丁香花在线影院观看在线播放| 亚洲三级精品| 91久久精品视频| 国产自产自拍视频在线观看| 一区二区三区视频免费| 亚洲美女综合网| 日本韩国精品在线| 久久久久亚洲天堂| 久久精品一二三| 亚洲五月激情网| 校园激情久久| 成年人三级视频| 欧美猛男同性videos| 91中文字幕在线观看| 在线视频超级| 欧美成人精品xxx| 欧美91精品久久久久国产性生爱| 欧美日韩免费观看一区二区三区| 免费中文字幕视频| 中文字幕二三区不卡| 国产伦精品一区二区免费| 蜜乳av一区二区三区| 丰满少妇久久久| 香蕉精品视频在线观看| 欧美日韩国产三区| 国产精品乱战久久久| 国产在线视频不卡| 成人影院网站| 久久久女女女女999久久| 在线看av的网址| 亚洲欧美日韩第一区| 亚洲大尺度网站| 欧美理论片在线| 老熟妇一区二区三区| 午夜精品视频一区| 欧产日产国产v| 亚洲国产精品激情在线观看| 不卡一区二区在线观看| 丁香一区二区三区| 色姑娘综合天天| 日本午夜一区二区| 波多野结衣家庭教师在线播放| 欧美 日韩 国产 一区| 亚洲精品一区国产精品| 自拍偷拍精品| 欧美国产综合视频| 欧美日韩夜夜| 国产亚洲精品美女久久久m| 精品视频一区二区三区在线观看| 国产精品久久久久久搜索 | 蜜桃av免费看| 99久久久精品免费观看国产蜜| 日本一级大毛片a一| 国产一区 二区 三区一级| 久久人人爽av| 免费在线观看不卡| 天天爱天天操天天干| 日韩精品1区2区3区| 欧美成人黑人猛交| 日韩精品免费专区| 玩弄japan白嫩少妇hd| 亚欧成人精品| 成人在线看视频| 日韩二区三区四区| 亚洲最大综合网| 蜜桃精品在线观看| 一级片视频免费观看| 毛片不卡一区二区| www.污污视频| 国产精品资源在线看| 苍井空张开腿实干12次| 不卡电影一区二区三区| yy1111111| 91麻豆国产香蕉久久精品| 亚洲国产欧美视频| 久久蜜臀中文字幕| 久久久久久成人网| 亚洲精品免费电影| 国产亚洲色婷婷久久99精品| 亚洲国产日日夜夜| 在线天堂中文字幕| 欧美色区777第一页| 亚洲专区第一页| 日韩欧美亚洲另类制服综合在线| 亚洲第一色视频| 精品一区二区三区三区| 98在线视频| 欧美成人在线免费| www.超碰在线| 国产精品爱久久久久久久| 六九午夜精品视频| **亚洲第一综合导航网站| 亚洲一区二区三区中文字幕在线观看 | 免费看日韩毛片| 在线视频欧美区| 国产哺乳奶水91在线播放| 日韩成人在线视频| 91美女视频在线| 欧美激情视频三区| 成人软件在线观看| 亚洲xxx自由成熟| 免费久久久久久久久| 日韩视频在线免费播放| 亚洲精品资源| 中文字幕第100页| 成人一区在线看| 少妇高潮惨叫久久久久| 亚洲一区二区三区中文字幕在线| 亚洲国产精品无码久久久| 日韩一区二区在线播放| 九色在线免费| 欧美疯狂做受xxxx高潮| 国产成人毛片| 国产乱子伦精品| 五月婷婷六月综合| 国产1区2区在线| 丁香婷婷综合五月| 日本黄区免费视频观看| 婷婷综合在线观看| a级片在线免费看| 亚洲视频一区二区三区| 啦啦啦中文在线观看日本| 国产精品一区二区三区成人| 激情小说亚洲图片| 300部国产真实乱| 美女任你摸久久| 人妻丰满熟妇av无码久久洗澡 | 久久精品国产久精国产思思| 亚洲男人av| 国产精品久久波多野结衣| 日韩欧美国产精品综合嫩v| 国产91在线免费| 国产成人免费在线视频| 永久免费看片视频教学| 欧洲国内综合视频| 日本福利在线观看| 久久免费视频在线| 亚洲日本va午夜在线电影| 亚洲图片都市激情| 日韩**一区毛片| 亚洲自拍偷拍一区二区| 午夜精品久久久久久久| 亚洲第一天堂影院| 欧美精品在线看| 在线免费成人| 一区二区三区四区欧美日韩| 日韩福利电影在线| 欧美18—19性高清hd4k| 欧美日韩在线免费| 人成网站在线观看| 欧美高清在线视频观看不卡| 国产成年精品| 国产对白在线播放| 精品一区二区三区在线播放视频 | 亚洲一二三区不卡| 国产激情视频在线播放| 久久国产精品久久精品| 精品一区二区三区中文字幕| 一本一生久久a久久精品综合蜜| 日韩和的一区二区| 成人小视频免费看| 欧美性色黄大片| 97视频在线观看网站| 国产精品爽爽ⅴa在线观看| 久久精品播放| 黄色片免费网址| 亚洲曰韩产成在线| 国产综合视频在线| 91av在线精品| 国产精品一区二区av日韩在线 | 成人午夜视频在线播放| 国产婷婷色综合av蜜臀av| 午夜精品成人av| 日韩中文一区二区三区| 久久精品久久精品| 亚洲色图综合区| 精品国产欧美一区二区| av伦理在线| 日韩免费电影一区二区| 麻豆国产精品官网| 亚洲不卡在线播放| 欧美tickling网站挠脚心| 国产福利电影在线播放| 欧美日韩亚洲一区二区三区在线观看 | 欧美一区2区| 青青草久久伊人| 一个色在线综合| 亚洲欧洲精品视频| 国产精品91免费在线| 国产精品久久久久久| 麻豆tv在线观看| 色婷婷av一区二区三区之一色屋| av网站在线播放| 草莓视频一区| 老司机亚洲精品| 国产高潮流白浆| 国产偷国产偷亚洲清高网站| 六九午夜精品视频| 日韩欧美不卡在线| 国产精品网友自拍| 高潮毛片7777777毛片| 青青草国产精品一区二区| 97视频精品| 国产精品无码一区二区三区免费| 欧美三级电影一区| 丰满诱人av在线播放| 日本视频一区二区不卡| 国产精品一区二区无线| 特级毛片www| 欧美伦理91i| 精品久久91| jjzzjjzz欧美69巨大| 欧美性一二三区| 91超碰国产在线| 在线观看成人av| 91婷婷韩国欧美一区二区| 亚洲系列在线观看| 欧美自拍视频在线观看| 你懂的亚洲视频| 999久久久国产| 日韩精品在线视频美女| 深夜激情久久|