Transformação de imagem no OpenCV

Esta questão está relacionada com esta questão:How to remove convexity defects in sudoku square

Eu estava tentando implementarnikie's answer emMathematica to OpenCV-Python. Mas estou preso no último passo do procedimento.

ou seja, eu tenho todos os pontos de intersecção no quadrado como abaixo:

Agora, eu quero transformar isso em um quadrado perfeito de tamanho (450.450) como dado abaixo:

(Não importa a diferença de brilho de duas imagens).

Questão: Como posso fazer isso no OpenCV-Python? estou usandocv2 versão.