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?)
↧