opex792 commited on
Commit
1b85de9
·
verified ·
1 Parent(s): 8ce64d7

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -1
app.py CHANGED
@@ -35,11 +35,25 @@ def fetch_and_solve_captcha():
35
  nparr = np.frombuffer(image_bytes, np.uint8)
36
  original_image = cv2.imdecode(nparr, cv2.IMREAD_COLOR)
37
 
 
38
  hsv = cv2.cvtColor(original_image, cv2.COLOR_BGR2HSV)
39
  lower_blue = np.array([90, 50, 50])
40
  upper_blue = np.array([130, 255, 255])
41
  mask = cv2.inRange(hsv, lower_blue, upper_blue)
42
- processed_image = cv2.bitwise_not(mask)
 
 
 
 
 
 
 
 
 
 
 
 
 
43
 
44
  tesseract_config = r'--oem 3 --psm 7 -c tessedit_char_whitelist=ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
45
  text = pytesseract.image_to_string(processed_image, config=tesseract_config)
 
35
  nparr = np.frombuffer(image_bytes, np.uint8)
36
  original_image = cv2.imdecode(nparr, cv2.IMREAD_COLOR)
37
 
38
+ # --- Этап 1: Фильтрация по цвету ---
39
  hsv = cv2.cvtColor(original_image, cv2.COLOR_BGR2HSV)
40
  lower_blue = np.array([90, 50, 50])
41
  upper_blue = np.array([130, 255, 255])
42
  mask = cv2.inRange(hsv, lower_blue, upper_blue)
43
+
44
+ # --- ЭТАП 2: УЛУЧШЕННАЯ ОЧИСТКА (НОВЫЙ ШАГ) ---
45
+ # Создаем "ядро" - небольшую матрицу для морфологических операций.
46
+ # Размер 2x2 хорошо подходит для удаления мелких артефактов.
47
+ kernel = np.ones((2, 2), np.uint8)
48
+
49
+ # Применяем операцию "Открытие" (Opening).
50
+ # Это эрозия, за которой следует расширение. Она удаляет мелкий шум (ошмётки).
51
+ logging.info("Применение морфологического открытия для удаления шума...")
52
+ cleaned_mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel, iterations=1)
53
+
54
+ # --- Этап 3: Инверсия и распознавание ---
55
+ # Инвертируем очищенную маску для Tesseract (черный текст на белом фоне)
56
+ processed_image = cv2.bitwise_not(cleaned_mask)
57
 
58
  tesseract_config = r'--oem 3 --psm 7 -c tessedit_char_whitelist=ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
59
  text = pytesseract.image_to_string(processed_image, config=tesseract_config)