Optimización de obtener OR de canales Mat

Quiero convertir un BGR cv :: Mat a gris usando esta fórmulaGray=B OR G OR R; pixel-wise operation. Intenté esto:

cv::Mat diff_channels[3];
cv::split(diff, diff_channels);
diff = diff_channels[0] | diff_channels[1] | diff_channels[2];

¿Se puede lograr esto con un mejor enfoque?

Además, si quiero lograrGray=MAX(B,G,R); pixel-wise operation cualquier sugerencia ?

Respuestas a la pregunta(3)

Su respuesta a la pregunta