¿Cómo puedo aplicar una matriz de transformación a un punto en OpenCV?

Supongamos que tengo una matriz de transformación Mat tr que obtuve de getAffineTransform() y un Point2d p . Quiero el punto que es el resultado de la deformación p con tr . ¿OpenCV proporciona una forma de hacer esto?

cv::transform se usa para transformar puntos con una matriz de transformación.

Cada elemento de la matriz de canales N src se interpreta como un vector de elemento N que se transforma utilizando la matriz de M x N o M x (N + 1) del vector del elemento M: el elemento correspondiente de la matriz de salida dst.

La función se puede usar para la transformación geométrica de los puntos N-dimensionales, la transformación lineal arbitraria del espacio de color (como varios tipos de transformadas RGB a YUV), barajando los canales de imagen, etc.

Hay un ejemplo conciso en la documentación de InputArray (de lo contrario no es relevante):

 std::vector vec; // points or a circle for( int i = 0; i < 30; i++ ) vec.push_back(Point2f((float)(100 + 30*cos(i*CV_PI*2/5)), (float)(100 - 30*sin(i*CV_PI*2/5)))); cv::transform(vec, vec, cv::Matx23f(0.707, -0.707, 10, 0.707, 0.707, 20)); 

O es probable que solo puedas convertir el Point2f en un Mat y multiplicarlo por la matriz.