¿Cómo encontrar las esquinas de un objeto Rect en openCV?

Estoy usando la biblioteca openCV en la plataforma Android. He detectado con éxito el rectángulo más grande de la imagen, pero como mi aplicación se usará para el escaneo, también quiero tener la funcionalidad de cambio de perspectiva.

Sé cómo aplicar perspectiveTransform y warpPerspectiveTransform, pero para eso necesitaré esquinas del rectángulo para los puntos de origen.

Parece muy fácil encontrar las esquinas dado que tenemos las coordenadas de la primera esquina (arriba a la izquierda) y el ancho / alto asociado con el objeto Rect, pero el problema es que, para un rectángulo girado (el delimitador habitual, pero los lados no son paralelos) eje), estos valores son muy diferentes. En este caso, almacena los valores correspondientes a otro rectángulo que tiene lados paralelos al eje y cubre el rectángulo girado, de modo que no puedo detectar las esquinas del rectángulo real.

También quiero hacer una comparación entre estos dos algoritmos para detectar una hoja de la imagen.

Borde Canny -> contorno más grande -> rectángulo más grande -> encontrar esquinas -> cambio de perspectiva

Canny edge-> Hough lines -> intersección de las líneas -> cambio de perspectiva

Lo que quiero preguntar es si tenemos un objeto Rect, ¿cómo obtener todas las esquinas de ese rectángulo?

Gracias por adelantado.