tft每日頭條

 > 生活

 > 按鍵精靈手機版字體顔色

按鍵精靈手機版字體顔色

生活 更新时间:2025-02-12 02:16:33

大家好,我是公衆号3分鐘學堂的郭立員,今天給大家帶來一個二值化轉黑白圖的案例分享。

效果展示

按鍵精靈手機版字體顔色(按鍵精靈安卓版)1

原理講解

本期文章主要涉及到一些關于顔色的基礎原理,對于沒有這方面基礎知識的同學來說,可能需要多看兩遍。

圖片是由像素點組成的,每個像素點的顔色是由三原色組成,所謂三原色就是紅色、綠色、藍色。它們通過“疊加”得到新的顔色,舉個例子看下圖。

按鍵精靈手機版字體顔色(按鍵精靈安卓版)2

通過圖片演示可以看到當多個顔色重疊一起時,會得到一個新的顔色,比如紅色和綠色在一起就可以得到黃色。如果紅綠藍在一起就是白色。

上圖中所用的紅綠藍顔色都是最純的,專業術語叫做飽和度最高。既然有最高、最純的說法,那就說明紅綠藍顔色是有等級之分的。

按鍵精靈手機版字體顔色(按鍵精靈安卓版)3

來看上圖,紅色一點點消失,這個過程就是由最純到最不純。在電腦顯示上,我們人為的給三原色的每種顔色分成256個等級,用0-255來表示。

一個顔色最純就是就是255,最不純就是0,共計256種色階。而三原色是紅綠藍3種顔色組成,那麼混合能夠得到顔色種類就是 256*256*256,約為一千七百萬種的顔色。

按鍵精靈手機版字體顔色(按鍵精靈安卓版)4

看上圖,當綠色逐漸變純色以後,紅綠中間相交的部分也在發生變化,由紅色變成橙色再變成黃色。

這就是為什麼會有一千七百多萬種顔色的原因,每種原色增加一個色階,就是一種新的顔色,當然由于相鄰色階直接變化很微小,肉眼分辨不出來,但是對于顯示器來說它們是不同的。

當我們把紅綠藍三原色都弄到極限它們會得到什麼顔色呢?

①紅綠藍都是最純,得到白色顔色。

②紅綠藍都是最不純,得到黑色顔色。

講完顔色的基礎原理我們終于可以講黑白圖二值化了,顔色是有一千七百多萬種可能性,二值化呢就是把這些顔色分類,變成兩類顔色,并且用兩種顔色代替,通常我們用黑白表示,也可以是紅藍、黑金之類的。

說到二值化可能會想到編程上的二進制,也就是0和1。其實用01表示也是可以的。

下面有一個關鍵點叫做阈值,就是我們劃分顔色的臨界點,我們顔色有上千萬種可能性,那麼怎麼劃分成兩種顔色呢?

就需要一個阈值,大于阈值的用白色表示,小于阈值的用黑色表示。

阈值的算法是我們可以随意定,一種常見的算法,就是根據顔色的“亮度”,就是把顔色紅綠藍三個原色的色階加在一起然後除以3,這個就是顔色的亮度。

比如紅色150,綠色80,藍色10,那麼亮度就是(150 80 40)/3等于90。

這種亮度的計算結果範圍是最亮255 255 255除以3,那麼是255,最暗是0 0 0除以3,那麼是0。也就是說亮度的範圍也是0-255。

如果以亮度作為阈值的,比方說亮度90,大于90就變成白色,小于90就變成黑色。這樣就可以把上千萬種顔色變成兩種顔色了,得到我們說的圖片二值化。

操作過程

第一步:預先想好一個阈值

第二步:獲取圖片顔色中紅綠藍的值。

Dim PixelData =Image.GetPicData(Path)

第三步:遍曆所有像素點的紅綠藍的值。

TracePrint PixelData[1][1][3] //R顔色值 TracePrint PixelData[1][1][2] //G顔色值 TracePrint PixelData[1][1][1] //B顔色值

第四步:把紅藍綠分量相加再除以3,把結果和阈值進行比較,大于阈值的讓紅綠藍都等于255,顔色變成白色,小于等于阈值的讓紅綠藍都等于0,顔色變成黑色。

當然為了減少運算量,也可以不除以3,而是把阈值乘以3得到一個3倍阈值,即紅綠藍三色相加和3倍的阈值比較大小。

最後一步:把新的顔色數據生成圖片,得到一張黑白圖。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved