|
- import cv2
- import os
- import glob
-
- # Caminho para os arquivos de captcha a serem processados
- arquivos = glob.glob('captcha_tratado_teste/*')
-
- # Posições fixas para o corte de cada caractere
- posicoes_corte = [(6, 40), (56, 90), (111, 144), (161, 197), (214, 250), (265, 297)]
-
- for arquivo in arquivos:
- imagem = cv2.imread(arquivo, cv2.IMREAD_GRAYSCALE)
-
- # Aplicar um limiar para binarizar a imagem
- _, imagem_bin = cv2.threshold(imagem, 128, 255, cv2.THRESH_BINARY_INV)
-
- imagem_final = cv2.merge([imagem_bin] * 3) # Convertendo de volta para RGB para desenhar os retângulos coloridos
-
- # Processar cada região de corte definida
- i = 0
- for x1, x2 in posicoes_corte:
- i += 1
- imagem_caractere = imagem_bin[20:-15, x1:x2] # Cortar a região do caractere
- nome_arquivo = os.path.basename(arquivo).replace(".png", f"_letra{i}.png")
- imagem_caractere = cv2.bitwise_not(imagem_caractere)
- print(f"Save: {nome_arquivo}")
- cv2.imwrite(f'caracteres/{nome_arquivo}', imagem_caractere) # Salvar cada caractere como uma imagem
-
- # Desenhar um retângulo ao redor do caractere na imagem original para visualização
- cv2.rectangle(imagem_final, (x1, 0), (x2, imagem_bin.shape[0]), (0, 255, 0), 1)
-
- # Salvar a imagem com os retângulos desenhados
- nome_arquivo = os.path.basename(arquivo)
- cv2.imwrite(f"identificado/{nome_arquivo}", imagem_final)
|