c++ - Algoritmo de rotación de plano rápido?
geometry rotation (2)
En este caso, no es necesario tratar con la información 3D, es solo una función de mapeo, de un conjunto de coordenadas a otro.
Mire las transformaciones afines, son capaces de corregir simples sesgos y efectos de perspectiva. Debería poder encontrar el código en alguna parte que calculará una transformación de los 4 puntos en las esquinas de su rectángulo.
Casi se olvidó: si "rápido" es realmente importante, puede simplificar el sistema para que solo use transformaciones de corte simples en combinación, aunque eso tendrá un impacto negativo en la calidad de la imagen para sujetos muy inclinados.
Estoy trabajando en una aplicación que detecta el rectángulo más prominente en una imagen, luego busca rotarlo para que la esquina inferior izquierda del rectángulo descanse en el origen, de forma similar a cómo funciona el sistema OSCAR de IUPR. Sin embargo, una vez que se detecta el rectángulo más prominente, no estoy seguro de cómo tener en cuenta el componente de profundidad o el eje z, ya que el rectángulo no siempre estará "de frente". Cualquier ejemplo para ampliar mi comprensión sería muy apreciado. A continuación se muestra un ejemplo del sistema OSCAR de IUPR.
En realidad, creo que puedes salirte con la tuya con algo mucho más simple que el enfoque de Mark .
Una vez que tenga las coordenadas 2D en la imagen torcida, vuelva a utilizar esas coordenadas como coordenadas de textura.
En un renderizador, dibuje un rectángulo simple donde los vértices de cada esquina estén mapeados en la textura de los vértices encontrados en la imagen bidimensional asimétrica (normalizada y transformada de otra manera en el plano de coordenadas de textura de su sistema de representación).
Ahora puede confiar en el hardware (usando OpenGL o similar) para hacer la corrección por usted, o puede escribir su propio mapeador de texturas:
Deberá adivinarse la relación de aspecto ya que estamos desechando la información 3D real. Sin embargo, puede salirse con la suya simplemente tomando el ancho máximo y la altura máxima de su rectángulo torcido.