一、颜色空间
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; }
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