opencv學習筆記之五 顏色空間
阿新 • • 發佈:2019-02-19
一、顏色空間
1.BGR
互補光: A(BGR) + B(BGR) = 白色(255,255,255),則AB互補。
亮度定義: 綠光人的感應最強。 Y = 0.299*R + 0.587*G + 0.114*B
灰度影象表示的就是亮度的差別。
顏色空間的對角線上的顏色是灰度的。
非彩色影象 != 灰度影象
// opencv12.cpp : 定義控制檯應用程式的入口點。 //程式碼和視訊一樣 12 但是在vs2012 + opencv2.4.9下不通過 //效果是現實三通道的 無 彩色影象 #include "stdafx.h" #include "highgui.h" #include "cv.h" #include "cxcore.h" int _tmain(int argc, _TCHAR* argv[]) { IplImage* img = cvLoadImage("D:\\PERSONAL\\VC++\\OpenCV\\image\\hyhead4.jpg",0);//1 表示輸入三通道的; 0 表示輸入單通道的 IplImage* dst = cvCreateImage(cvGetSize(img),8,3); cvMerge(img,img,img,0,dst); cvNamedWindow("hy4"); cvShowImage("hy4",img); cvNamedWindow("hy4_3"); cvShowImage("hy4_3",dst); cvWaitKey(0); cvReleaseImage(&img); cvDestroyWindow("hy4"); cvReleaseImage(&dst); cvDestroyWindow("hy4_3"); return 0; }
//視訊中 顏色空間灰度執行緒序
int _tmain(int argc, _TCHAR* argv[]) { IplImage* img = cvLoadImage("D:\\PERSONAL\\VC++\\OpenCV\\image\\hyhead4.jpg"); IplImage* dst = cvCreateImage(cvSize(255,255),8,3); //cvMerge(img,img,img,0,dst); for(int y = dst->height-1;y>0;y--) { cvSet2D(dst,y,dst->height - y,cvScalar(255-y,255-y,0)); } …… return 0; }
2.HSV
H:顏色; 取值是0-360,表示圓心角;0度紅,60黃,120綠,180青,240藍,圓直徑上的兩個顏色是互補光。
S: 飽和度;取值 0(表現為白色)——100(表示摻入白色值為0,純色);彩色度與亮度的比值。
V: 亮度; 0(暗)——100(亮)
閱讀資料:
http://baike.baidu.com/link?url=ZxPfay_4Hu63trfSU7aoQw3wMILtN1302YHWJ8RQ054zhxGJqlZYnboQ44bYTISwyR9ZvCjOv0c7ZGLWMHd3MkoeZ_kn9l2S31HpP8KxQ1O
http://blog.csdn.net/r91987/article/details/6262570