Un ejemplo en Python para detectar una matrícula en una imagen y obtener su valor (reconocer los caracteres). Se trata de un caso de uso de ejemplo que funciona con imágenes que contengan matrículas bien definidas y en rectángulo. Servirá a modo de ejemplo de uso de librerías para reconocer contornos en imagen, obtener sólo el rectángulo más grande, reconocer texto en imagen (OCR), etc.

Requisitos para crear aplicación en Python que obtiene una matrícula en una imagen y reconoce su texto

Necesitaremos disponer de un IDE (o un editor de texto) y de Python instalado en el equipo. En el siguiente enlace explicamos cómo usar Visual Studio Code para desarrollar aplicaciones Python:

Para el desarrollo de este script Python que obtiene una matrícula de una imagen y, mediante OCR, obtiene su valor en texto, necesitaremos las siguientes librerías: opencv-python (cv2), matplotlib, imutils, numpy y easyocr. Podremos instalarlas con los siguientes comandos:

Hay que tener en cuenta que este script de ejemplo es una prueba de concepto, que no funciona en todos los casos. Por ejemplo, si la matrícula no está contenida en un recuadro y, en cambio, tiene formas ovaladas o circulares, puede que no la detecte.

Si la imagen tiene varias matrículas, solo obtendrá una de ellas.

Aplicación Python que reconoce una matrícula en una imagen y obtiene su valor en texto

A continuación mostramos el código Python completo de la aplicación que, pasándole una imagen, obtiene el texto de la matrícula que contenga. El código está explicado en sus líneas más importantes:

Funcionamiento de la aplicación Python que obtiene una matrícula de una imagen (paso a paso)

Al compilar la aplicación, pasándole un fichero de imagen con matrícula, si descomentamos las líneas de depuración, para mostrar cómo va quedando la imagen con cada paso. En primer lugar, tendremos la imagen original cargada:

A continuación, la transformamos a escala de grises:

La limpiamos de posibles ruidos para obtener mejor los contornos:

Obtenemos los contornos de la imagen:

Recuadramos los contornos más grandes:

Recorreremos todos los contornos más grandes hasta elegir el que tenga forma de rectácgulo:

Seleccionamos el contorno que tiene forma de rectángulo:

Y le aplicamos el OCR, obteniendo su texto:

Descarga del código fuente en Python de la app que reconoce una matrícula en una imagen

A continuación, mostramos el enlace para la descarga del código fuente completo en Python y una imagen de ejemplo de un coche con matrícula: