How to set given channel of a cv::Mat to a given value efficiently without changing other channels? For example, I want to set its fourth channel (alpha channel
cv::Mat
Simple algorithm:
void SetChannel(Mat mat, uint channel, uchar value) { const uint channels = mat.channels(); if (channel > channels - 1) return; uchar * data = mat.data; uint N = mat.rows * mat.step / mat.elemSize1(); for (uint i = channel; i < N; i += channels) data[i] = value; }