Eliminar el ruido de fondo de una imagen captcha replicando el filtro de corte de TesserCap

Tengo una imagen captcha que se ve así:

Usando una utilidad llamadaTesserCap Desde McAfee, podría aplicar un filtro de "corte" a la imagen. (Antes de ejecutarlo, me aseguré de que solo hubiera dos colores en la imagen, blanco y negro). Me impresionó mucho el resultado de usar ese filtro con un valor de 2 en el cuadro de texto. Eliminó con precisión la mayor parte del ruido, pero mantuvo el texto principal, lo que resultó en esto:

Quería implementar algo como esto en uno de mis propios scripts, así que intenté averiguar qué biblioteca de procesamiento de imágenes usaba TesserCap. No pude encontrar nada; Resulta que utiliza su propio código para procesar la imagen. Entonces leoeste libro blanco Eso explica exactamente cómo funciona el programa. Me dio la siguiente descripción de lo que hace este filtro de corte:

Si el número contiguo de píxeles para los valores de escala de grises dados es menor que el número proporcionado en el cuadro numérico, el filtro de corte reemplaza estas secuencias con 0 (negro) o 255 (blanco) según la elección del usuario. El CAPTCHA se analiza en direcciones horizontales y verticales y se realizan los cambios correspondientes.

No estoy seguro de entender lo que está haciendo. Mi script está en Python, así que intenté usar PIL para manipular los píxeles como la cita descrita. Suena un poco simple, pero fallé, probablemente porque realmente no sabía qué estaba haciendo exactamente el filtro:

 (Esto se hace a partir de un captcha ligeramente diferente que utiliza un patrón circular).

También intenté ver si podría hacerse fácilmente con convert.exe de ImageMagick. Su opción -chop es algo completamente diferente. El uso de -median junto con algunos comandos de morfología ayudó a reducir parte del ruido, pero aparecieron puntos desagradables y las letras se distorsionaron mucho. No fue tan simple como hacer el filtro de cortar con TesserCap.

Entonces, mi pregunta es la siguiente: ¿cómo implemento el filtro de corte de TesserCap en Python, ya sea utilizando PIL o ImageMagick? Ese filtro de corte funciona mucho mejor que cualquiera de las alternativas que he probado, pero parece que no puedo replicarlo. He estado trabajando en esto por horas y todavía no he resuelto nada.

Respuestas a la pregunta(2)

Su respuesta a la pregunta