C++|OpenCV-HSV图像
生活随笔
收集整理的這篇文章主要介紹了
C++|OpenCV-HSV图像
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
圖像處理一般不在RGB域,因為各個顏色連接程度比較大。
而圖片處理一般采用HSV域,有利于圖片分割
色調H
用角度度量,取值范圍為0°~360°,從紅色開始按逆時針方向計算,紅色為0°,綠色為120°,藍色為240°。它們的補色是:黃色為60°,青色為180°,品紅為300°;
飽和度S
飽和度S表示顏色接近光譜色的程度。一種顏色,可以看成是某種光譜色與白色混合的結果。其中光譜色所占的比例愈大,顏色接近光譜色的程度就愈高,顏色的飽和度也就愈高。飽和度高,顏色則深而艷。光譜色的白光成分為0,飽和度達到最高。通常取值范圍為0%~100%,值越大,顏色越飽和。
明度V
明度表示顏色明亮的程度,對于光源色,明度值與發光體的光亮度有關;對于物體色,此值和物體的透射比或反射比有關。通常取值范圍為0%(黑)到100%(白)。
將圖分割為H ?S ?V通道
然后對v通道進行直方圖均衡(亮度進行提升)
HSV表
?
源碼如下:
#include <opencv2/core.hpp> #include <opencv2/highgui.hpp> #include <opencv2/imgproc.hpp> #include <opencv2/imgproc/imgproc_c.h> #include <iostream> #include <vector> using namespace std; using namespace cv;int main(){Mat originalMat=imread("src.jpg");Mat HSVMat,mergeMat;vector<Mat> planes;cvtColor(originalMat,HSVMat,COLOR_BGR2HSV);split(HSVMat,planes);equalizeHist(planes[2],planes[2]);merge(planes,mergeMat);imshow("original Picture",originalMat);imshow("HSV Picture",HSVMat);imshow("equalizeHistInV Picture",mergeMat);waitKey();getchar();return 0; }運行截圖如下:
?
總結
以上是生活随笔為你收集整理的C++|OpenCV-HSV图像的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux学习笔记-使用gdb调试
- 下一篇: VS加快程序编译速度——以VS2013为