typedef struct CvScalar
{
double val[4];
}CvScalar;
它是opencv常用的结构体,在于仕琪的《学习opencv》中指出,其意义是RGBA值。当然这个结构体也可以用于其他用处,因为如果把CvScalar看做是一个普通的结构体时 ,其内部只不过是存储了四个double型的值,分别为val[0],val[1],val[2],val[3],我们通常用的是前三个,val[0],val[1],val[2]的含义分别是彩色照片的三个通道,R,G,B通道。R是红色分量,G是绿色分量,B是蓝色分量,a是alpha。
函数cvScalar是一个特殊的例子:它有3个构造函数。第一个是cvScalar函数,它需要一个、两个、三个或者四个参数并将这些参数传递给数组val[]中的相应元素;第二个构造函数是cvRealScalar(),它需要一个参数,它被传递给val[0],而val[]数组别的值被赋为0;最后一个是cvScalarAll(),它需要一个参数并且val[]中的4个元素都会设置为这个参数。比如:
cvRectangle( //画一个矩形
myImg, //在哪一幅图片中画矩形
cvPoint(5,10), //矩形的左上角点
cvPoint(20,30), //矩形的右下角点
cvScalar(255,255,255) //表示矩形区域全白
);