Como encontrar os cantos de um objeto Rect no openCV?

Estou usando a biblioteca openCV na plataforma Android. Eu detectei com êxito o maior retângulo da imagem, mas como meu aplicativo será usado para fins de digitalização, desejo que a perspectiva também altere a funcionalidade.

Eu sei, como aplicar perspectiveTransform e warpPerspectiveTransform, mas para isso vou precisar de cantos do retângulo para os pontos de origem.

Parece muito fácil encontrar os cantos, pois temos as coordenadas do primeiro canto (canto superior esquerdo) e a largura / altura associadas ao objeto Rect, mas o problema é: para um retângulo girado (limite usualRect, mas lados não paralelos) ), esses valores são muito diferentes. Nesse caso, ele armazena os valores correspondentes a um outro retângulo com lados paralelos ao eixo e cobrindo o retângulo girado, o que me impede de detectar os cantos do retângulo real.

Também quero fazer uma comparação entre esses dois algoritmos para detectar uma planilha da imagem.

Canny edge -> Maior contorno -> maior retângulo -> encontrar cantos -> mudança de perspectiva

Canny edge-> Hough lines -> interseção das linhas -> mudança de perspectiva

A coisa que eu quero perguntar é dada se tivermos um objeto Rect, como obter todos os cantos desse retângulo?

Desde já, obrigado.

questionAnswers(2)

yourAnswerToTheQuestion