¿Se puede usar la función OpenCV cvtColor para convertir una matriz en su lugar?

La función OpenCVcvtColor convierte el espacio de color de una matriz (por ejemplo, de RGB a escala de grises). La firma de la función de C ++ es

void cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0 )

¿Se puede utilizar esta función para convertir una matriz en su lugar, es decir, consrc el mismo objeto quedst?

cv::Mat mat = getColorImage();
cvtColor(mat, mat, CV_RGB2GRAY);

(Soy consciente de que, de cualquier manera, como el destino tiene un número de canales diferente al de la fuente, aún tendrá que asignar un nuevo bloque de memoria para el destino).

De manera más general, ¿hay una convención dentro de la API de OpenCV para determinar cuándo se puede usar una función de esta manera?

Respuestas a la pregunta(3)

Su respuesta a la pregunta