tesseract-OCRを使わずにPythonで画像から文字を認識させるソフトを作ってみた – 2

前回の記事<<

tesseract-OCRを使わずに文字を識別する方法の続きです。

ImageGrabを使ってデスクトップのスクリーンショットを撮ったところからです。
スクリーンショットの撮り方は、
img = ImageGrab.grab((X1 , Y1 , X2 , Y2)).save(“ファイル名.png”)
でいけるかと思います。

以降の流れとしては、
・画像のグレースケール化
・画像の2階調化
・画像内の座標を取得し、文字を識別する
という流れです。

・画像のグレースケール化
文字を識別するために、画像上の特定の色の座標位置が使えるのではないかと思いました。
しかし、私が識別したい文字の色は数種類あるので、特定の色を何色にしようかと考えた結果、OpenCV2ならグレースケール化や2階調化が簡単ということで白にすることにしました。

グレースケールは、さっき保存した画像を一度読み込んでから行います。
img = cv2.imread(“ファイル名.png”)
img2 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

・2階調化
2階調化します。閾値はどれくらいがいいかは、JTrimというソフトであらかじめ何度か試してみて、決めました。
→ JTrim

_ ,img3 = cv2.threshold(img2,128,255,cv2.THRESH_BINARY)

これで、変数img3に2階調化されたデータが入りました。
なぜimg3の前に ”_ ,” を入れるのかはわかりませんが、入れないとうまくいかず、検索した結果アンダーバーとカンマを入て解決する方法を見つけました。

続きます。

次回はこちら

コメント

  1. 匿名 より:

    _アンダースコアは、一つ前の計算式が格納されてる為、_とimg3の間に’,’を入れる事で、opencvを適応させてるんだと思います。

タイトルとURLをコピーしました