關(guān)于利用OpenCV進(jìn)行顏色分類(lèi),本文包含了HSV介紹及應(yīng)用、cv2.inRange及應(yīng)用、RGB與HSV通道的區(qū)別三個(gè)方面。
01 HSV介紹
HSV是相對(duì)RGB的另一種顏色表示方式,它相對(duì)RGB而言,是一種比較直觀的顏色模型。其中顏色的參數(shù)分別是:色調(diào)(H),飽和度(S),明度(V)。
色調(diào)H:
用角度度量,取值范圍0°~360°,從紅色開(kāi)始按逆時(shí)針?lè)较蛴?jì)算,紅色為0°,綠色為120°,藍(lán)色為240°。它們的補(bǔ)色是:黃色為60°,青色為180°,紫色為300°;
飽和度S:
飽和度S表示顏色接近光譜色的程度。一種顏色,可以看成是某種光譜色與白色混合的結(jié)合。其中光譜色所占的比例愈大,顏色接近光譜色的程度就愈高,顏色的飽和度也就愈高。飽和度高,顏色則深而艷。光譜色的白光成分為0,飽和度達(dá)到最高。通常取值范圍為0%~100%,值越大,顏色越飽和。
明度V:
明度表示顏色明亮的程度,對(duì)于光源色,明度值與發(fā)光體的光亮度有關(guān);對(duì)于物體色,此值和物體的透射比或反射比有關(guān),光照對(duì)此值影響最大。通常取值范圍為0%(黑)到100%(白)。
代碼:
OpenCV中由BGR轉(zhuǎn)為HSV方法:注意:OpenCV讀取的圖片格式為BGR格式,非RGB格式。

原圖:
處理后:
02 利用cv2.inRange進(jìn)行二值化處理
cv2.inRange介紹
此函數(shù)可實(shí)現(xiàn)圖像的二值化處理功能,這點(diǎn)類(lèi)似之前提到過(guò)的threshold()函數(shù),但是threshold()函數(shù)只能對(duì)單一通道進(jìn)行二值化處理,而inRange()可以對(duì)多個(gè)通道進(jìn)行操作。使用inRange處理之前,需要確定好兩個(gè)數(shù)組,即圖像上限和圖像下限。
img=cv2.inRange(hsv,lower,upper)
第一個(gè)參數(shù):hsv指的是原圖
第二個(gè)參數(shù):lower指的是圖像中低于這個(gè)lower的值,圖像值變?yōu)?
第三個(gè)參數(shù):upper指的是圖像中高于這個(gè)upper的值,圖像值變?yōu)?
注意:如果傳入的圖像是彩色的,即三維數(shù)組圖像,則lower與upper里面分別有三個(gè)元素,并且二者必須都是數(shù)組類(lèi)型。
(lower, upper)兩個(gè)數(shù)組參數(shù)可以作為一個(gè)范圍,如果圖像的像素點(diǎn)在這個(gè)范圍之內(nèi),像素點(diǎn)就變成255(即白色),如果圖像的像素點(diǎn)在這個(gè)范圍之外,像素點(diǎn)就變?yōu)?(即黑色)。
處理完成之后,圖像變?yōu)槎祱D像,想要的圖像顏色變?yōu)榘咨?,其他顏色變?yōu)楹谏?,之后可以?zhuān)門(mén)針對(duì)白色進(jìn)行處理。
代碼示例
提取該圖水杯部分(即黑色部分):

處理后:
由于貓耳朵與后面角落有部分黑色,并且杯子本身黑色不純(存在白點(diǎn)),會(huì)產(chǎn)生噪點(diǎn),需要后續(xù)進(jìn)行處理,消去噪音點(diǎn)。
03 RGB通道與HSV通道在顏色檢測(cè)中的區(qū)別
如果光源不穩(wěn)定,光照變化較大(存在陰影或者亮斑),則利用HSV通道檢測(cè)就比RGB檢測(cè)高效得多。光照變化較大時(shí),對(duì)RGB三個(gè)色道的參數(shù)影響都很大,在實(shí)際調(diào)參過(guò)程中會(huì)顯得非常麻煩,而且效果不理想。
HSV中,由于H是顏色的色調(diào),基本不受光照影響(即不受陰影或者亮斑影響),而V(明度)主要體現(xiàn)了顏色明亮程度,可以主要調(diào)試V來(lái)應(yīng)對(duì)光源的變化,并且調(diào)試效果比RGB色道要可靠。
審核編輯:湯梓紅
-
RGB
+關(guān)注
關(guān)注
4文章
826瀏覽量
61692 -
OpenCV
+關(guān)注
關(guān)注
33文章
652瀏覽量
44606 -
顏色檢測(cè)
+關(guān)注
關(guān)注
0文章
9瀏覽量
996 -
HSV
+關(guān)注
關(guān)注
0文章
10瀏覽量
2817
原文標(biāo)題:基礎(chǔ)丨利用OpenCV進(jìn)行顏色檢測(cè)
文章出處:【微信號(hào):gh_c87a2bc99401,微信公眾號(hào):INDEMIND】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
在全志H616核桃派上實(shí)現(xiàn)USB攝像頭的OpenCV顏色檢測(cè)
基于openCV的人臉檢測(cè)系統(tǒng)的設(shè)計(jì)
如何使用Python中的OpenCV模塊檢測(cè)顏色
Android系統(tǒng)下OpenCV的人臉檢測(cè)模塊的設(shè)計(jì)
使用Adaboost算法實(shí)現(xiàn)車(chē)牌檢測(cè)在OpenCV上實(shí)現(xiàn)的研究分析
圖像處理的顏色空間及其OpenCV實(shí)現(xiàn)
圖像的顏色空間及其OpenCV實(shí)現(xiàn)
利用OpenCV構(gòu)建一個(gè)RaspberryPi運(yùn)動(dòng)檢測(cè)系統(tǒng)
如何使用Python OpenCV進(jìn)行面部標(biāo)志檢測(cè)
使用opencv和python進(jìn)行智能火災(zāi)檢測(cè)
使用TCS3200/230進(jìn)行顏色檢測(cè)
利用opencv+openpose實(shí)現(xiàn)人體姿態(tài)檢測(cè)
Python OpenCV教程:特定顏色的檢測(cè)
如何利用OpenCV進(jìn)行顏色分類(lèi) rgb和hsv的區(qū)別
在核桃派上實(shí)現(xiàn)USB攝像頭的OpenCV顏色檢測(cè)
利用OpenCV進(jìn)行顏色檢測(cè)
評(píng)論