Programa para identificar através do vídeo não está funcionando, foi feito o upload caso alguem queria utilizar a logica.
Primeiramente deve-se explicar que foram criados dois programas onde a única diferença está em que um dos programas lê uma foto para identificar a placa e o outro lê um vídeo, os programas ficam iguais a partir do momento m que retiramos um frame do vídeo. O programa inicia criando o dataset “alfabeto” e “números” que servirão para comparar as letras, após utiliza-se a função otsu para achar o melhor threshold e assim criar a mascara, então se identifica se a imagem já é de uma placa ou se precisa ser achada a placa nela, isto é feito através da proporção da imagem. Se a imagem não for de uma placa utiliza-se a função iblob para identificar os blobs desta e então procura-se qual destes possui no mínimo 6 filhos, este valor foi utilizado para caso um dos caracteres não seja identificado, sabendo qual blob é possivelmente a placa utiliza-se o label dele para identificar os quatro pontos da borda desta e defini-se onde estes pontos deveriam estar, utilizando estes oito pontos realiza-se a homografia da imagem para então recorta-se somente a placa da imagem.
Quando se tem uma imagem que representa somente a placa divide-se esta em duas imagens novas, utilizando a proporção definida da placa, onde uma contem somente a cidade e a outra contem os caracteres alfanuméricos da placa. Então se usa a função otsu novamente para binarizar ambas as imagens e identificar os blobs nelas, esses blobs representam os caracteres de cada imagem, no caso da cidade dois blobs representam os caracteres do estado e os outros representam o da cidade, e no caso da placa três blobs representam os caracteres alfabéticos e os outros quatro representam os caracteres numéricos. Com os blobs identificados realiza-se a ordenação crescente deles pela sua posição em u para criar-se um vetor de imagens que representa a posição correta de cada caractere, isto para as imagens da cidade e dos caracteres alfanuméricos.
Esses mesmo vetores são criados para nossas imagens de referencia de caracteres, a primeira que possui todas as letras do alfabeto e a segunda que possui os números de 0 a 9 em formato mandatory. Com os vetores definidos precisa-se realizar o template match para identificar quais letras e números estão na placa, para isso escalamos as imagens das letras e dos números, tanto da placa como do referencial, para um padrão de tamanho 100 em v e tamanho 70 em u. Com isso feito utiliza-se a função zncc para comparar as imagens e criar um uma matriz, onde cada coluna representa um caractere da imagem e cada linha é um caractere da referência. Então se procura qual o maior valor de todas as linhas em cada coluna, este maior valor representa qual template foi mais parecido e o número da linha representa a posição nos vetores de letras e números de referência. Logo, com o conhecimento da posição de cada letra e número, é possível escrever qual a placa e qual a cidade e estado. Para o código do vídeo, se para de procurar um frame quando esse valor de zncc for aceitável.