# Multiplication between Mat and Scalar

For a given mask image (binary `cv::Mat M`

), I'd like to color (`cv::Scalar C`

) the white pixels of `M`

. In general, I think this problem is an element-wise multiplication between `cv::Mat`

and `cv::Scalar`

, like:

`M2 = M*C`

where I am expecting:

```
[0 1 0 ...] [Scalar(0,0,0) Scalar(b,g,r) Scalar(0,0,0) ...]
[0 1 1 ...] * Scalar(b,g,r) = [Scalar(0,0,0) Scalar(b,g,r) Scalar(b,g,r) ...]
[0 0 0 ...] [Scalar(0,0,0) Scalar(0,0,0) Scalar(0,0,0) ...]
```

but actually there is no definition of `operator*`

between `cv::Mat`

and `cv::Scalar`

. What is a good alternative?

Computing an image for each channel (i.e. `M*b`

, `M*g`

, `M*r`

) and then compose a single image by cv::merge would be a solution, but I feel it might not be computationally efficient. (or is this a best way?)