数字だけが画像にあるときは、en
だけを入れたほうがよさそう、というめも。
やってる作業は、「¥4,000」みたいな値段が書いてある画像から値段の部分だけを切り抜いて OCR かけるというもの(この記事では OCR をかける部分についてだけ)。
コードはこういうものを使った。
import easyocr import cv2 import os import matplotlib.pyplot as plt LANG = "ja" reader = easyocr.Reader([LANG]) x = 48 im_path = os.path.join(CROP_DIR, "rising2_3", "01_03.jpg") im = cv2.imread(im_path) # 「¥」のとこを落とす cropped_im = im.copy()[:, x:,:] fig, axes = plt.subplots(1, 2) axes[0].imshow(im) axes[1].imshow(cropped_im) reader.readtext(im[:, x:,:])[0][1]
LANG = "ja"
のとき
認識結果に無理やり日本語を入れてきて、たとえば 「900」 の画像が 「9』」になる。「¥」がある方でも「¥900」が「雪卯」みたいに読まれてた。記号は読めなかったはずなので、それに引っ張られて壊れるのかも。
LANG = "en"
のとき
数字だけ切り抜いてあげれば正しく認識してくれる。¥が入ったまんまだと、¥がアルファベットに無理やりなおされて、それに引きずられて「0」が「o」になったりする。