Scalar()表示具有4个元素的数组,在OpenCV中被大量用于传递像素值,如RGB颜色值。而RGB颜色值为三个参数,其实对于Scalar函数来说,如果用不到第四个参数,则不需要写出来;若只写三个参数,OpenCV会认为我们就想表示三个参数。
来看个例子。如果给出以下颜色参数表达式:
那么定义的RGB颜色值:红色分量为c,绿色分量为b,蓝色分量为a。
Scalar类的源头为Scalar类,而Scalar类是Vec4x的一个变种,我们常用的Scalar 其实就是Scalar_。这就解释了为什么很多函数的参数输入可以是Mat,也可以是Scalar。
参考:
《OpenCV3 编程入门》 毛星云 P96