Normalizar placa de coche para OCR en OpenCV C ++

Estoy haciendo un sistema simple de reconocimiento de placas de automóviles OCR. Estoy usando HaarCascades para encontrar la placa del automóvil, y luego necesito normalizar esta placa, para ponerla en mi módulo OCR. Estoy usando el relleno para encontrar los contornos principales de una placa de automóvil, y luego realizo la transformación de Hough, para encontrar los límites superior e inferior de una placa de automóvil:

Aquí hay una parte del código, donde realizo la transformación Hough ^

HoughLinesP(canny_img, lines, 1, CV_PI/180, 80, 80, 30 );

    for ( size_t i = 0; i < lines.size(); i++ ) {  
        line (output, Point(lines[i][0], lines[i][3]), Point(lines[i][4], lines[i][5]), Scalar(0,0,255), 1, 8 );
    }

Ahora necesito cortar y rotar esta imagen a lo largo de estas dos líneas. ¿Cómo puedo hacer esto? entiendo que necesito usar el punto Punto (líneas [i] [0]) .. Punto (líneasi), pero ¿qué debo hacer con ellos?

Básicamente, necesito obtener algo así:

Imagen que obtuve usando HaarCascades

Después de alguna transformación, necesito obtener algo como esto:

Entonces, en el primer paso, necesito cortar solo los internos superiores e inferiores.

Respuestas a la pregunta(2)

Su respuesta a la pregunta