Normalizar placa de carro para OCR em OpenCV C ++

Estou desenvolvendo um sistema simples de reconhecimento de placas OCR para carros. Estou usando o HaarCascades para encontrar a placa do carro e, em seguida, preciso normalizar esta placa, para colocá-la no meu módulo de OCR. Estou usando o floodfill para encontrar os contornos principais de uma placa de carro e, em seguida, realizo a transformação Hough, para encontrar as bordas superior e inferior de uma placa de carro:

Aqui está uma parte do código, onde eu executo Hough transform ^

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 );
    }

Agora eu preciso cortar e girar esta imagem ao longo destas duas linhas. Como posso fazer isso? eu entendo que eu preciso usar o ponto Point (linhas [i] [0]) .. Point (linesi), mas o que devo fazer com eles?

Então, basicamente, eu preciso obter algo assim:

Imagem, que eu tenho usando o HaarCascades

Depois de alguma transformação, preciso obter algo parecido com isto:

Portanto, no primeiro passo, preciso cortar apenas as bordas superiores e inferiores.

questionAnswers(2)

yourAnswerToTheQuestion