数独ボードから数字を抽出しようとしています。ボードとその角を検出して変換すると、ボードだけがきれいに並んだ画像が残ります。今、Tesseract android 実装の Tess-Two を使用して数字を認識しようとしています。画像を9つの部分に分割しました
currentCell = undistortedThreshed.submat(rect);
はrect
、画像を囲む四角形です。
次に数字の認識です。
4 などの一部の数字は、完全に認識します。一部、主に 6、7、8 は 0 または何も認識されません。
画像をきれいにすることで、テッセラクトをできる限り助けたいと思っていcurrentCell
ます。現時点では、このように見えます
。(逆しきい値なしでも試しました)。白線(数独線)をなくしたい。私はこのようなことを試しました(hereから取得)
Imgproc.Canny(currentCell, currentCell, 80, 90);
Mat lines = new Mat();
int threshold = 50;
int minLineSize = 5;
int lineGap = 20;
Imgproc.HoughLinesP(currentCell, lines, 1, Math.PI / 180,
threshold, minLineSize, lineGap);
for (int x = 0; x < lines.cols() && x < 1; x++) {
double[] vec = lines.get(0, x);
double x1 = vec[0], y1 = vec[1], x2 = vec[2], y2 = vec[3];
Point start = new Point(x1, y1);
Point end = new Point(x2, y2);
Core.line(currentCell, start, end, new Scalar(255), 10);
}
何も描画されません。線の幅と色をいじってみましたが、まだ何も描画されません。大きな画像に線を引いてみましたが、脱落した画像には何も機能しません..
助言がありますか?
編集
何らかの理由で、行が見つからないようです。これは、canny を適用した後のイメージですが、HoughLines
線は検出されません。HoughLines
OpenCVのドキュメントに示されているように、異なる値で両方を試しHoughLinesP
ましたが、何も機能しません...これらはかなり明白な行です..何が間違っていますか? ありがとう!