Kaynağa Gözat

#feat: Create function to decode base64 and return captcha, and creating the main.py with the endpoint to receive the request

main
LucasUnioIT 7 ay önce
ebeveyn
işleme
b019be01ea
6 değiştirilmiş dosya ile 97 ekleme ve 0 silme
  1. BIN
      __pycache__/main.cpython-312.pyc
  2. BIN
      __pycache__/solve_captcha.cpython-312.pyc
  3. BIN
      __pycache__/tratar_captcha.cpython-312.pyc
  4. +23
    -0
      main.py
  5. +57
    -0
      solve_captcha.py
  6. +17
    -0
      tratar_captcha.py

BIN
__pycache__/main.cpython-312.pyc Dosyayı Görüntüle


BIN
__pycache__/solve_captcha.cpython-312.pyc Dosyayı Görüntüle


BIN
__pycache__/tratar_captcha.cpython-312.pyc Dosyayı Görüntüle


+ 23
- 0
main.py Dosyayı Görüntüle

@@ -0,0 +1,23 @@
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from typing import Optional
# Suponha que quebrar_captcha_base64 está definido em outro módulo ou arquivo
from solve_captcha import quebrar_captcha_base64
app = FastAPI()
class CaptchaRequest(BaseModel):
base64_string: str
@app.post("/solve_captcha/")
async def solve_captcha(request: CaptchaRequest):
if not request.base64_string:
raise HTTPException(status_code=400, detail="base64_string is required")
try:
resultado_captcha = quebrar_captcha_base64(request.base64_string)
return {"resultado": resultado_captcha}
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))

+ 57
- 0
solve_captcha.py
Dosya farkı çok büyük olduğundan ihmal edildi
Dosyayı Görüntüle


+ 17
- 0
tratar_captcha.py Dosyayı Görüntüle

@@ -2,6 +2,7 @@ import cv2
import os
import glob
import numpy as np
import base64
def tratar_imagens(pasta_origem, pasta_destino='captcha_tratado'):
@@ -20,5 +21,21 @@ def tratar_imagens(pasta_origem, pasta_destino='captcha_tratado'):
nome_arquivo = os.path.basename(arquivo)
cv2.imwrite(f'{pasta_destino}/{nome_arquivo}', result_image)
def tratar_base64(imagem_base64):
imagem_bytes = base64.b64decode(imagem_base64)
imagem_np = np.frombuffer(imagem_bytes, np.uint8)
imagem = cv2.imdecode(imagem_np, cv2.IMREAD_COLOR)
imagem_cinza = cv2.cvtColor(imagem, cv2.COLOR_BGR2GRAY)
_, imagem_tratada = cv2.threshold(imagem_cinza, 127, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
_, imagem_binaria = cv2.threshold(imagem_tratada, 128, 255, cv2.THRESH_BINARY_INV)
kernel = np.ones((2, 2), np.uint8)
imagem_aberta = cv2.morphologyEx(imagem_binaria, cv2.MORPH_OPEN, kernel)
imagem_resultado = cv2.bitwise_not(imagem_aberta)
return imagem_resultado
if __name__ == "__main__":
tratar_imagens('captcha_images')

Yükleniyor…
İptal
Kaydet