JacobLinCool's picture
chore: init
ffa6aac
raw
history blame
1.1 kB
import pytesseract
import numpy as np
def solve(image: np.ndarray) -> str:
for mode in [7, 10, 11, 12, 13]:
result = normalize(
pytesseract.image_to_string(
image, lang="eng", config=f"--oem 3 --psm {mode}", timeout=0.5
).strip()
)
if result != "":
return result
return "not sure"
def normalize(s: str) -> str:
print(s)
if "\n" in s:
return ""
s = s.replace(" ", "").lower()
# if first is number
if s[0].isdigit() and s[2].isdigit():
if s[1] in ["+", "4"]:
return str(int(s[0]) + int(s[2]))
elif s[1] in ["-", "_"]:
return str(int(s[0]) - int(s[2]))
else:
return str(int(s[0]) * int(s[2]))
# possible alphabet mapping
mapping = {
")": "l",
"¥": "y",
"2": "z",
"é": "e",
}
for k, v in mapping.items():
s = s.replace(k, v)
# if not all alphabet
if not all([c.isalpha() for c in s]):
return ""
if len(s) != 4:
return ""
return s