与えられたピクチャをスレッショルドで事前処理してTesseractに渡したいと思います。最初にGimp(2.8.16)と130〜255の固定範囲を使っていました.Javaを使ってOpenCV(3.1)で実装したとき、まずcvtColorを呼び出すのを忘れました。 (これらの領域はGimpの白い部分でした)。それ以外は、期待どおりの映像でした。しかし、私が対応するコールを実装したとき、私は予想していたものとは異なるピクチャを得ました。以前に色付けされた領域は黒色になり、残りの画像はGimpで作成したものと似ているようです。OpenCVスレッシュホールドが期待通りでない
もっと類似した出力を作成するために欠けていることはありますか?
私はこの質問をしていた理由は、残念ながら、たTesseractは(PSM 6で)二つの画像はかなり異なる結果作成することです:Gimpの中に作成したものについて
- :「2011年1 Lを0006」 "2011ÔÇö] L 0 0006 1" ここ
は、私が使用されるコードである:
Mat thres = new Mat();
Mat tmp = new Mat();
Imgproc.cvtColor(src, tmp, Imgproc.COLOR_BGR2GRAY); // tmp = src.clone(); in my first attempt
Imgproc.threshold(tmp, thres, 130, 255, Imgproc.THRESH_BINARY);
Imgcodecs.imwrite("output.jpg", thres);
0123のOpenCVを用いて生成された第2のいずれかの
は絵は以下のとおりです。絵を考えると
:Gimpのを使用して作成
画像:
01:OpenCVのを使用してまず結果
2番目の結果OpenCVの使用:最初のケースで
ありがとうございます。 私はそれをカラー画像に基づいて作成したいと思います。しかし、私は結果のイメージに色の部分が欲しいのではなく、黒の部分(ほとんどが黒であるように見えるフォントのような)のみを必要とします。私はそれに加えて何をする必要がありますか? – Max
画像を繰り返し、3つのチャンネルのピクセル値をチェックし、3つのチャンネルすべてで0または255の場合は同じ値を保持するか、0で置き換えてこれらのカラー値を黒にします。 –