大多數(shù)的圖像處理算法,都是從灰度化處理開始。當開始接觸圖像處理的童鞋,可能跟我一樣,經(jīng)常會看到諸如彩色圖像存儲、轉(zhuǎn)化為灰度圖,灰度化、二值化處理,對這些概念迷惑過,具體不知道要怎么做。那么今天小編就給大家詳細介紹這兩個概念。開篇之前,先對圖像基礎(chǔ)顏色RGB做簡單了解。
在圖像處理中,用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ù)學中的相等),此時的這個值叫做灰度值。
灰度處理的方法:
一般灰度處理經(jīng)常使用兩種方法來進行處理。
方法1:
灰度化后的R=(處理前的R + 處理前的G +處理前的B)/ 3
灰度化后的G=(處理前的R + 處理前的G +處理前的B)/ 3
灰度化后的B=(處理前的R + 處理前的G +處理前的B)/ 3
美女圖片經(jīng)過方法1進行灰度化后的效果如下:
方法2:
灰度化后的R = 處理前的R * 0.3+ 處理前的G * 0.59 +處理前的B * 0.11
灰度化后的G = 處理前的R * 0.3+ 處理前的G * 0.59 +處理前的B * 0.11
灰度化后的B = 處理前的R * 0.3+ 處理前的G * 0.59 +處理前的B * 0.11
美女圖片經(jīng)過方法2進行灰度化后的效果如下:
個人覺得第二種方法處理的效果比較好,第一種方法處理后的圖片有點模糊。
圖像的二值化
什么叫圖像的二值化?二值化就是讓圖像的像素點矩陣中的每個像素點的灰度值為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的變?yōu)?(黑色),灰度值大于127的變?yōu)?55(白色),這樣做的好處是計算量小速度快,但是缺點也是很明顯的,因為這個閥值在不同的圖片中均為127,但是不同的圖片,他們的顏色分布差別很大,所以用127做閥值,白菜蘿卜一刀切,效果肯定是不好的。
方法2:
計算像素點矩陣中的所有像素點的灰度值的平均值avg
(像素點1灰度值+...+像素點n灰度值)/ n = 像素點平均值avg
然后讓每一個像素點與avg一一比較,小于等于avg的像素點就為0(黑色),大于avg的 像素點為255(白色),這樣做比方法1好一些。
方法3:
使用直方圖方法(也叫雙峰法)來尋找二值化閥值,直方圖是圖像的重要特質(zhì)。直方圖方法認為圖像由前景和背景組成,在灰度直方圖上,前景和背景都形成高峰,在雙峰之間的最低谷處就是閥值所在。取到閥值之后再一一比較就可以了。
原文標題:還不會做圖像識別?看完這個灰度化處理就懂了!
文章出處:【微信公眾號:電子發(fā)燒友網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
責任編輯:haq
-
圖像
+關(guān)注
關(guān)注
2文章
1083瀏覽量
40449 -
識別
+關(guān)注
關(guān)注
3文章
173瀏覽量
31964
原文標題:還不會做圖像識別?看完這個灰度化處理就懂了!
文章出處:【微信號:elecfans,微信公眾號:電子發(fā)燒友網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論