Android Open Source - esr-scanner Ocr Result






From Project

Back to project page esr-scanner.

License

The source code is released under:

Apache License

If you think the Android project esr-scanner listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright 2011 Robert Theis//from w  w  w.  j ava2s. co m
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package ch.luklanis.esscan;

import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.Point;
import android.graphics.Rect;

import java.util.List;

/**
 * Encapsulates the result of OCR.
 */
public final class OcrResult {
    private final Bitmap bitmap;
    private final String text;

    private final int[] wordConfidences;
    private final int meanConfidence;

    private final List<Rect> wordBoundingBoxes;
    private final List<Rect> textlineBoundingBoxes;
    private final List<Rect> regionBoundingBoxes;

    private final long timestamp;
    private final long recognitionTimeRequired;

    private final Paint paint;

    public OcrResult(Bitmap bitmap, String text, int[] wordConfidences, int meanConfidence,
                     List<Rect> textlineBoundingBoxes,
                     List<Rect> wordBoundingBoxes, List<Rect> regionBoxes,
                     long recognitionTimeRequired) {
        this.bitmap = bitmap;
        this.text = text;
        this.wordConfidences = wordConfidences;
        this.meanConfidence = meanConfidence;
        this.textlineBoundingBoxes = textlineBoundingBoxes;
        this.wordBoundingBoxes = wordBoundingBoxes;
        this.regionBoundingBoxes = regionBoxes;
        this.recognitionTimeRequired = recognitionTimeRequired;
        this.timestamp = System.currentTimeMillis();

        this.paint = new Paint();
    }

    public Bitmap getBitmap() {
        if (wordBoundingBoxes.isEmpty()) {
            return bitmap;
        } else {
            return getAnnotatedBitmap();
        }
    }

    private Bitmap getAnnotatedBitmap() {
        Canvas canvas = new Canvas(bitmap);

        // Draw bounding boxes around each word
        for (Rect r : wordBoundingBoxes) {
            paint.setAlpha(0xA0);
            paint.setColor(0xFF00CCFF);
            paint.setStyle(Style.STROKE);
            paint.setStrokeWidth(3);
            canvas.drawRect(r, paint);
        }

//    // Draw bounding boxes around each character
//    for (int i = 0; i < characterBoundingBoxes.size(); i++) {
//      paint.setAlpha(0xA0);
//      paint.setColor(0xFF00FF00);
//      paint.setStyle(Style.STROKE);
//      paint.setStrokeWidth(3);
//      Rect r = characterBoundingBoxes.get(i);
//      canvas.drawRect(r, paint);
//    }

        return bitmap;
    }

    public String getText() {
        return text;
    }

    public int[] getWordConfidences() {
        return wordConfidences;
    }

    public int getMeanConfidence() {
        return meanConfidence;
    }

    public long getRecognitionTimeRequired() {
        return recognitionTimeRequired;
    }

    public Point getBitmapDimensions() {
        return new Point(bitmap.getWidth(), bitmap.getHeight());
    }

    public List<Rect> getTextlineBoundingBoxes() {
        return textlineBoundingBoxes;
    }

    public List<Rect> getWordBoundingBoxes() {
        return wordBoundingBoxes;
    }

    public List<Rect> getRegionBoundingBoxes() {
        return regionBoundingBoxes;
    }

    public long getTimestamp() {
        return timestamp;
    }

    @Override
    public String toString() {
        return text + " " + meanConfidence + " " + recognitionTimeRequired + " " + timestamp;
    }
}




Java Source Code List

ch.luklanis.android.common.PlatformSupportManager.java
ch.luklanis.android.common.executor.AsyncTaskExecInterface.java
ch.luklanis.android.common.executor.AsyncTaskExecManager.java
ch.luklanis.android.common.executor.DefaultAsyncTaskExecInterface.java
ch.luklanis.android.common.executor.HoneycombAsyncTaskExecInterface.java
ch.luklanis.esscan.BeepManager.java
ch.luklanis.esscan.CaptureActivityHandler.java
ch.luklanis.esscan.CaptureActivity.java
ch.luklanis.esscan.DecodeHandler.java
ch.luklanis.esscan.DecodeThread.java
ch.luklanis.esscan.EsrBaseActivity.java
ch.luklanis.esscan.FinishListener.java
ch.luklanis.esscan.HelpActivity.java
ch.luklanis.esscan.IBase.java
ch.luklanis.esscan.Intents.java
ch.luklanis.esscan.LuminanceSource.java
ch.luklanis.esscan.OcrCharacterHelper.java
ch.luklanis.esscan.OcrInitAsyncTask.java
ch.luklanis.esscan.OcrRecognizeAsyncTask.java
ch.luklanis.esscan.OcrResultFailure.java
ch.luklanis.esscan.OcrResultText.java
ch.luklanis.esscan.OcrResult.java
ch.luklanis.esscan.PlanarYUVLuminanceSource.java
ch.luklanis.esscan.PreferencesActivity.java
ch.luklanis.esscan.ViewfinderView.java
ch.luklanis.esscan.camera.AutoFocusManager.java
ch.luklanis.esscan.camera.CameraConfigurationManager.java
ch.luklanis.esscan.camera.CameraManager.java
ch.luklanis.esscan.camera.PreviewCallback.java
ch.luklanis.esscan.camera.exposure.DefaultExposureInterface.java
ch.luklanis.esscan.camera.exposure.ExposureInterface.java
ch.luklanis.esscan.camera.exposure.ExposureManager.java
ch.luklanis.esscan.camera.exposure.FroyoExposureInterface.java
ch.luklanis.esscan.camera.open.DefaultOpenCameraInterface.java
ch.luklanis.esscan.camera.open.GingerbreadOpenCameraInterface.java
ch.luklanis.esscan.camera.open.OpenCameraInterface.java
ch.luklanis.esscan.camera.open.OpenCameraManager.java
ch.luklanis.esscan.codesend.Crypto.java
ch.luklanis.esscan.codesend.ESRSenderHttp.java
ch.luklanis.esscan.codesend.IEsrSender.java
ch.luklanis.esscan.dialogs.BankProfileDialogFragment.java
ch.luklanis.esscan.dialogs.BankProfileListDialog.java
ch.luklanis.esscan.dialogs.CancelOkDialog.java
ch.luklanis.esscan.dialogs.OkDialog.java
ch.luklanis.esscan.dialogs.OptionalOkDialog.java
ch.luklanis.esscan.history.BankProfile.java
ch.luklanis.esscan.history.DBHelper.java
ch.luklanis.esscan.history.GetHistoryAsyncTask.java
ch.luklanis.esscan.history.HistoryActivity.java
ch.luklanis.esscan.history.HistoryExportUpdateAsyncTask.java
ch.luklanis.esscan.history.HistoryFragment.java
ch.luklanis.esscan.history.HistoryItemAdapter.java
ch.luklanis.esscan.history.HistoryItem.java
ch.luklanis.esscan.history.HistoryManager.java
ch.luklanis.esscan.history.PsDetailActivity.java
ch.luklanis.esscan.history.PsDetailFragment.java
ch.luklanis.esscan.ime.ScannerIME.java
ch.luklanis.esscan.paymentslip.DTAFileCreator.java
ch.luklanis.esscan.paymentslip.EsIbanResult.java
ch.luklanis.esscan.paymentslip.EsIbanValidation.java
ch.luklanis.esscan.paymentslip.EsrResult.java
ch.luklanis.esscan.paymentslip.EsrValidation.java
ch.luklanis.esscan.paymentslip.PsResult.java
ch.luklanis.esscan.paymentslip.PsValidation.java