Cómo Python reconoce el código de verificación
Primero identificamos el tipo de código de verificación más simple, el código de verificación gráfico. Este tipo de código de verificación apareció por primera vez y ahora es muy común. Generalmente consta de 4 letras o números. Por ejemplo, la página de registro de la Infraestructura Nacional de Conocimiento de China tiene un código de verificación similar. La página es la siguiente:
El último elemento del formulario es el código de verificación gráfico. Debemos ingresar los caracteres de la imagen. completamente correctamente para completar el registro.
Para obtener más conocimientos sobre los códigos de verificación, puede consultar estos artículos:
Rastreador de Python3 avanzado: identificación de códigos de verificación gráficos
Rastreador de Python3 avanzado: identificación de extremos Verificar código de verificación deslizante
Rastreador Python3 avanzado: identifica el código de verificación de apuntar a clic
Rastreador Python3 avanzado: identifica el código de verificación de Weibo Gongge
· El objetivo de esto La sección utiliza el código de verificación de CNKI como ejemplo para explicar el método de uso de la tecnología OCR para identificar códigos de verificación gráficos.
·Preparación: Reconocer el código de verificación gráfica requiere la biblioteca tesserocr. Tome la instalación de mac como ejemplo: en mac, primero usamos Homebrew para instalar las bibliotecas ImageMagick y tesseract: brew install imagemagickbrew install tesseract y luego instale. tesserocr. :pip3 install tesserocr pillow De esta manera, hemos completado la instalación de tesserocr.
·Obtener el código de verificación Para facilitar el experimento, primero guardamos la imagen del código de verificación localmente. Abra las herramientas de desarrollador y busque el elemento del código de verificación. El elemento del código de verificación es una imagen y su atributo ser es CheckCode.aspk. Entonces podemos abrir directamente el siguiente enlace para ver un código de verificación, hacer clic derecho para guardarlo y nombrarlo código.jpg:
De esta manera, obtendremos una imagen del código de verificación para el reconocimiento de la prueba.
Recomendaciones relacionadas: "Tutorial de Python"
Prueba de identificación
A continuación, cree un nuevo proyecto, coloque la imagen del código de verificación en el directorio raíz del proyecto y use la biblioteca tesserocr Identifica el código de verificación El código es el siguiente:
Aquí creamos una nueva imagen y llamamos al método image_to_text() de tesserocr. Pase el objeto Imagen para completar el reconocimiento. El proceso de implementación es muy simple. Los resultados son los siguientes:
Podemos ver que los resultados del reconocimiento son diferentes de los resultados reales. en el código de verificación interfiere con el reconocimiento de imágenes.
Además, tesserocr tiene un método más simple. Este método puede convertir directamente el archivo de imagen en una cadena. El código es el siguiente:
Sin embargo, el efecto de reconocimiento de este método es. No tan bueno como el anterior. Bien plantado.
Procesamiento del código de verificación
En la imagen de arriba, podemos ver que no se reconoce completamente correctamente, por lo que necesitamos procesar más la imagen, como conversión en escala de grises y operaciones de valores binarios. , etc.
Podemos usar el parámetro del método convert() del objeto Imagen para pasar L y convertir la imagen en una imagen en escala de grises. El código es el siguiente:
Pasar 1 a. convertir la imagen El procesamiento de binarización es el siguiente:
También podemos especificar el umbral para la binarización. El método anterior utiliza el umbral predeterminado de 127. Sin embargo, no podemos convertir directamente la imagen original. Primero debemos convertir la imagen original en una imagen en escala de grises y luego especificar el umbral de binarización. El código es el siguiente:
Aquí, el umbral variable representa la binarización. umbral, y la configuración del umbral es 160, entonces echemos un vistazo a nuestros resultados:
Podemos ver que el código QR actual es más conveniente para nosotros para identificar algunas imágenes que interfieren, hacemos algunas; Procesamiento de escala de grises y binarización, que mejorará la precisión del reconocimiento de imágenes.