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)