歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> OpenCV圖像特征之顏色直方圖

OpenCV圖像特征之顏色直方圖

日期:2017/3/1 9:42:45   编辑:Linux編程

OpenCV之顏色空間:

顏色空間RGB(Red 紅色,Green 綠色,Blue 藍色)

R的取值范圍:0-255

G的取值范圍:0-255

B的取值范圍:0-255

顏色空間HSV (Hue 色相,Saturation 飽和度,intensity 亮度)

H的取值范圍:0-179

S的取值范圍:0-255

V的取值范圍:0-255

顏色空間HLS (Hue 色相,lightness 亮度,Saturation 飽和度)

H的取值范圍:0-179

L的取值范圍:0-255

S的取值范圍:0-255

--------------------------------------分割線 --------------------------------------

編輯推薦

Ubuntu Linux下安裝OpenCV2.4.1所需包 http://www.linuxidc.com/Linux/2012-08/68184.htm

Ubuntu 12.04 安裝 OpenCV2.4.2 http://www.linuxidc.com/Linux/2012-09/70158.htm

CentOS下OpenCV無法讀取視頻文件 http://www.linuxidc.com/Linux/2011-07/39295.htm

Ubuntu 12.04下安裝OpenCV 2.4.5總結 http://www.linuxidc.com/Linux/2013-06/86704.htm

Ubuntu 10.04中安裝OpenCv2.1九步曲 http://www.linuxidc.com/Linux/2010-09/28678.htm

基於QT和OpenCV的人臉識別系統 http://www.linuxidc.com/Linux/2011-11/47806.htm

--------------------------------------分割線 --------------------------------------

知道了一些常用的顏色空間各個通道的像素的取值范圍,我們下面討論顏色直方圖

一維直方圖:

比如,我們只計算上圖S通道的直方圖,並有30個bin。

#include<opencv2\core\core.hpp>
#include<opencv2\highgui\highgui.hpp>
#include<opencv2\imgproc\imgproc.hpp>

using namespace cv;

#include<iostream>

using namespace std;
int main(int argc ,char** argv)
{
Mat src,hsv;
if(argc != 2 || !(src = imread(argv[1],1)).data || src.channels() != 3)
return -1;

//顏色空間的轉換BGR轉HSV
cvtColor(src,hsv,CV_BGR2HSV);

//把H通道分為30個bin,把S通道等分為32bin
int hbins = 30;
//int sbins = 32;
//int histSize[] = {hbins,sbins};
int histSize[] = {hbins};
//H的取值范圍 0-179
float hranges [] = {0,180};
//S的取值范圍 0-255
//float sranges [] ={0,255};
//const float* ranges [] = {hranges,sranges};
const float* ranges [] = {hranges};
MatND hist;
//我們根據圖像第一個通道一維直方圖
int channels[] = {0};
calcHist(&hsv,1,channels,Mat(),hist,1,histSize,ranges,true,false);

//輸出直方圖
cout<<hist<<endl;
return 0;
}

輸出結果,肯定一個30維的向量:

解釋:第一個數60571,就是代表H在[0,5]之間的像素點的個數,第二個數12194就是代表H在[6,11]之間的像素點的個數。

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-06/103493p2.htm

Copyright © Linux教程網 All Rights Reserved