OpecCV颜色分割
顏色分割
普通讀取的圖片都是RGB格式,就意味著每種顏色都是由三種RGB組合而成。同樣的常用的格式還有HSV,具體的看下面的百度貼過來的:
色調(diào)H
用角度度量,取值范圍為0°~360°,從紅色開始按逆時針方向計算,紅色為0°,綠色為120°,藍色為240°。它們的補色是:黃色為60°,青色為180°,紫色為300°;
飽和度S
飽和度S表示顏色接近光譜色的程度。一種顏色,可以看成是某種光譜色與白色混合的結(jié)果。其中光譜色所占的比例愈大,顏色接近光譜色的程度就愈高,顏色的飽和度也就愈高。飽和度高,顏色則深而艷。光譜色的白光成分為0,飽和度達到最高。通常取值范圍為0%~100%,值越大,顏色越飽和。
明度V
明度表示顏色明亮的程度,對于光源色,明度值與發(fā)光體的光亮度有關(guān);對于物體色,此值和物體的透射比或反射比有關(guān)。通常取值范圍為0%(黑)到100%(白)。
下面展示使用HSV對圖片進行顏色分割,要分割的圖片如下:
HSV格式中,H表示與顏色有關(guān)的,所以如果基于顏色分割的話,主要是對H通道進行閾值分割。看圖片鳥為一種顏色,背景大致為一種顏色,大致可以猜測H通道的直方圖有兩個波峰,且背景像素對于小鳥像素,所以選擇幅值較小的波峰即為小鳥所在區(qū)域:
下面編寫代碼實現(xiàn)相關(guān)的內(nèi)容:
首先來看一下H通道的直方圖:
和預(yù)測結(jié)果相同,可以看到小波峰主要集中在100附近,所以閾值選擇需要在100兩邊:
下面我們來試試不同閾值選擇的結(jié)果:不同的閾值為【50,120】、【80-120】、【100,120】
可以看出只要將小波峰完全包進閾值選擇范圍內(nèi)就可以選擇出來小鳥。
然后利用這個掩碼對圖像做位與操作:
得到分割出來的小鳥:
完整的代碼如下:
總結(jié)
以上是生活随笔為你收集整理的OpecCV颜色分割的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在caffe上fine-tuning网络
- 下一篇: python 无法引入同级目录的方法_再