图像的色彩类别,灰度化,二值化
灰度化:在RGB模型中,如果R=G=B時,則彩色表示一種灰度顏色,其中R=G=B的值叫灰度值,因此,灰度圖像每個像素只需一個字節(jié)存放灰度值(又稱強度值、亮度值),灰度范圍為0-255。一般常用的是加權(quán)平均法來獲取每個像素點的灰度值。
二值化:圖像的二值化,就是將圖像上的像素點的灰度值設(shè)置為0或255,也就是將整個圖像呈現(xiàn)出明顯的只有黑和白的視覺效果
在圖像處理中,用RGB三個分量(R:Red,G:Green,B:Blue),即紅、綠、藍三原色來表示真彩色,R分量,G分量,B分量的取值范圍均為0~255,比如電腦屏幕上的一個紅色的像素點的三個分量的值分別為:255,0,0。
像素點?
像素點是最小的圖像單元,一張圖片由好多的像素點構(gòu)成,下圖是一張美女的大白腿的圖片。?
圖像處理的灰度化和二值化
查看這張圖片的信息,尺寸是800 * 800 的,寬度是800像素,高度是800像素。也就是說這張圖片是由一個800 * 800的像素點矩陣構(gòu)成的(不理解矩陣是什么意思的話,可以把矩陣理解為C語言中的二維數(shù)組),這個矩陣是800行,800列,像素是圖像的最小單元,這張圖片的寬度是800個像素點的長度,高度是800個像素點的長度,共有800 * 800 = 640000個像素點。?
圖像處理的灰度化和二值化
因為一個像素點的顏色是由RGB三個值來表現(xiàn)的,所以一個像素點矩陣對應(yīng)三個顏色向量矩陣,分別是R矩陣,G矩陣,B矩陣,它們也都是800 *800大小的矩陣。下面展示這張美女圖片的一部分顏色矩陣數(shù)據(jù):
這個是R矩陣中的一部分?
圖像處理的灰度化和二值化
這個是G矩陣中的一部分?
圖像處理的灰度化和二值化
這個是B矩陣中的一部分?
圖像處理的灰度化和二值化
比如每個矩陣的第一行第一列的值分別為:R:240,G:223,B:204,所以這個像素點的顏色就是(240,223,204),三個矩陣的值不一定一 一對應(yīng),這樣做只是為了便于讀者理解。
圖像的灰度化?
在理解了一張圖片是由一個像素點矩陣構(gòu)成之后,我們就知道我們對圖像的處理就是對這個像素點矩陣的操作,想要改變某個像素點的顏色,我們只要在這個像素點矩陣中找到這個像素點的位置,比如第x行,第y列,所以這個像素點在這個像素點矩陣中的位置就可以表示成(x,y),因為一個像素點的顏色由紅、綠、藍三個顏色變量表示,所以我們通過給這三個變量賦值,來改變這個像素點的顏色,比如改成紅色(255,0,0),可以表示為(x,y,(R=255,G=0,B=0))。?
那么什么叫圖片的灰度化呢?其實很簡單,就是讓像素點矩陣中的每一個像素點都滿足下面的關(guān)系:R=G=B(就是紅色變量的值,綠色變量的值,和藍色變量的值,這三個值相等,“=”的意思不是程序語言中的賦值,是數(shù)學(xué)中的相等),此時的這個值叫做灰度值。
灰度處理的方法:?
一般灰度處理經(jīng)常使用兩種方法來進行處理。?
方法1:?
灰度化后的R=(處理前的R + 處理前的G +處理前的B)/ 3?
灰度化后的G=(處理前的R + 處理前的G +處理前的B)/ 3?
灰度化后的B=(處理前的R + 處理前的G +處理前的B)/ 3
圖像處理的灰度化和二值化
個人覺得第二種方法處理的效果比較好,第一種方法處理后的圖片有點模糊。?
圖像的二值化?
什么叫圖像的二值化?二值化就是讓圖像的像素點矩陣中的每個像素點的灰度值為0(黑色)或者255(白色),也就是讓整個圖像呈現(xiàn)只有黑和白的效果。在灰度化的圖像中灰度值的范圍為0~255,在二值化后的圖像中的灰度值范圍是0或者255。?
黑色:?
二值化后的R = 0?
二值化后的G = 0?
二值化后的B = 0?
白色:?
二值化后的R = 255?
二值化后的G = 255?
二值化后的B = 255?
那么一個像素點在灰度化之后的灰度值怎么轉(zhuǎn)化為0或者255呢?比如灰度值為100,那么在二值化后到底是0還是255?這就涉及到取一個閥值的問題。?
常用的二值化方法:?
方法1:?
取閥值為127(相當于0~255的中數(shù),(0+255)/2=127),讓灰度值小于等于127的變 為0(黑色),灰度值大于127的變?yōu)?55(白色),這樣做的好處是計算量小速度快,但是 缺點也是很明顯的,因為這個閥值在不同的圖片中均為127,但是不同的圖片,他們的顏色 分布差別很大,所以用127做閥值,白菜蘿卜一刀切,效果肯定是不好的。?
方法2:?
計算像素點矩陣中的所有像素點的灰度值的平均值avg?
(像素點1灰度值+…+像素點n灰度值)/ n = 像素點平均值avg?
然后讓每一個像素點與avg一 一比較,小于等于avg的像素點就為0(黑色),大于avg的 像 素點為255(白色),這樣做比方法1好一些。?
方法3:?
使用直方圖方法(也叫雙峰法)來尋找二值化閥值,直方圖是圖像的重要特質(zhì)。直方圖方法 認為圖像由前景和背景組成,在灰度直方圖上,前景和背景都形成高峰,在雙峰之間的最低 谷處就是閥值所在。取到閥值之后再一 一比較就可以了。?
圖像處理的灰度化和二值化
總結(jié)
以上是生活随笔為你收集整理的图像的色彩类别,灰度化,二值化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在 js 中怎样获得 checkbox
- 下一篇: 服务器与客户端概念