new Scalar(1.0) | (1.0, 0, 0, 0) | 只有第 1 个通道为 1,其余通道为 0 |
new Scalar(1.0, 1.0) | (1.0, 1.0, 0, 0) | 前 2 通道为 1 |
new Scalar(1.0, 1.0, 1.0) | (1.0, 1.0, 1.0, 0) | 3 通道为 1 |
new Scalar(1.0, 1.0, 1.0, 1.0) | (1.0, 1.0, 1.0, 1.0) | 全部通道为 1 |
下面是java的源码:
public Scalar(double v0, double v1, double v2, double v3) {
this.val = new double[]{v0, v1, v2, v3};
}
public Scalar(double v0, double v1, double v2) {
this.val = new double[]{v0, v1, v2, (double)0.0F};
}
public Scalar(double v0, double v1) {
this.val = new double[]{v0, v1, (double)0.0F, (double)0.0F};
}
public Scalar(double v0) {
this.val = new double[]{v0, (double)0.0F, (double)0.0F, (double)0.0F};
}
public Scalar(double[] vals) {
if (vals != null && vals.length == 4) {
this.val = (double[])(([D)vals).clone();
} else {
this.val = new double[4];
this.set(vals);
}
}
下面是c++源码:
template class Scalar_ : public Vec<_Tp, 4>
{
public:
//! default constructor
Scalar_();
Scalar_(_Tp v0, _Tp v1, _Tp v2=0, _Tp v3=0);
Scalar_(_Tp v0);