OCR Configurable  1.0
 Todo Clases Namespaces Archivos Funciones Variables
OcrResult.java
Ir a la documentación de este archivo.
00001 /*
00002  * Copyright 2011 Robert Theis
00003  * Copyright 2012 Jaime Navarro Santapau
00004  *
00005  * Licensed under the Apache License, Version 2.0 (the "License");
00006  * you may not use this file except in compliance with the License.
00007  * You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00025 package edu.uoc.ocr;
00026 
00027 import java.util.List;
00028 
00029 import android.graphics.Bitmap;
00030 import android.graphics.Canvas;
00031 import android.graphics.Paint;
00032 import android.graphics.Paint.Style;
00033 import android.graphics.Point;
00034 import android.graphics.Rect;
00035 
00041 public class OcrResult {
00042         private Bitmap bitmap;
00043         private String text;
00044 
00045         private int[] wordConfidences;
00046         private int meanConfidence;
00047 
00048         private List<Rect> regionBoundingBoxes;
00049         private List<Rect> textlineBoundingBoxes;
00050         private List<Rect> wordBoundingBoxes;
00051         private List<Rect> stripBoundingBoxes;
00052         private List<Rect> characterBoundingBoxes;
00053 
00054         private long timestamp;
00055         private long recognitionTimeRequired;
00056 
00057         private Paint paint;
00058 
00059         public OcrResult(Bitmap bitmap, String text, int[] wordConfidences,
00060                         int meanConfidence, List<Rect> regionBoundingBoxes,
00061                         List<Rect> textlineBoundingBoxes, List<Rect> wordBoundingBoxes,
00062                         List<Rect> stripBoundingBoxes, List<Rect> characterBoundingBoxes,
00063                         long recognitionTimeRequired) {
00064                 this.bitmap = bitmap;
00065                 this.text = text;
00066                 this.wordConfidences = wordConfidences;
00067                 this.meanConfidence = meanConfidence;
00068                 this.regionBoundingBoxes = regionBoundingBoxes;
00069                 this.textlineBoundingBoxes = textlineBoundingBoxes;
00070                 this.wordBoundingBoxes = wordBoundingBoxes;
00071                 this.stripBoundingBoxes = stripBoundingBoxes;
00072                 this.characterBoundingBoxes = characterBoundingBoxes;
00073                 this.recognitionTimeRequired = recognitionTimeRequired;
00074                 this.timestamp = System.currentTimeMillis();
00075 
00076                 this.paint = new Paint();
00077         }
00078 
00079         public OcrResult() {
00080                 timestamp = System.currentTimeMillis();
00081                 this.paint = new Paint();
00082         }
00083 
00084         public Bitmap getBitmap() {
00085                 return getAnnotatedBitmap();
00086         }
00087 
00088         private Bitmap getAnnotatedBitmap() {
00089                 Canvas canvas = new Canvas(bitmap);
00090 
00091                 // Draw bounding boxes around each word
00092                 for (int i = 0; i < wordBoundingBoxes.size(); i++) {
00093                         paint.setAlpha(0xFF);
00094                         paint.setColor(0xFF00CCFF);
00095                         paint.setStyle(Style.STROKE);
00096                         paint.setStrokeWidth(2);
00097                         Rect r = wordBoundingBoxes.get(i);
00098                         canvas.drawRect(r, paint);
00099                 }
00100 
00101                 return bitmap;
00102         }
00103 
00104         public String getText() {
00105                 return text;
00106         }
00107 
00108         public int[] getWordConfidences() {
00109                 return wordConfidences;
00110         }
00111 
00112         public int getMeanConfidence() {
00113                 return meanConfidence;
00114         }
00115 
00116         public long getRecognitionTimeRequired() {
00117                 return recognitionTimeRequired;
00118         }
00119 
00120         public Point getBitmapDimensions() {
00121                 return new Point(bitmap.getWidth(), bitmap.getHeight());
00122         }
00123 
00124         public List<Rect> getRegionBoundingBoxes() {
00125                 return regionBoundingBoxes;
00126         }
00127 
00128         public List<Rect> getTextlineBoundingBoxes() {
00129                 return textlineBoundingBoxes;
00130         }
00131 
00132         public List<Rect> getWordBoundingBoxes() {
00133                 return wordBoundingBoxes;
00134         }
00135 
00136         public List<Rect> getStripBoundingBoxes() {
00137                 return stripBoundingBoxes;
00138         }
00139 
00140         public List<Rect> getCharacterBoundingBoxes() {
00141                 return characterBoundingBoxes;
00142         }
00143 
00144         public long getTimestamp() {
00145                 return timestamp;
00146         }
00147 
00148         public void setBitmap(Bitmap bitmap) {
00149                 this.bitmap = bitmap;
00150         }
00151 
00152         public void setText(String text) {
00153                 this.text = text;
00154         }
00155 
00156         public void setWordConfidences(int[] wordConfidences) {
00157                 this.wordConfidences = wordConfidences;
00158         }
00159 
00160         public void setMeanConfidence(int meanConfidence) {
00161                 this.meanConfidence = meanConfidence;
00162         }
00163 
00164         public void setRecognitionTimeRequired(long recognitionTimeRequired) {
00165                 this.recognitionTimeRequired = recognitionTimeRequired;
00166         }
00167 
00168         public void setRegionBoundingBoxes(List<Rect> regionBoundingBoxes) {
00169                 this.regionBoundingBoxes = regionBoundingBoxes;
00170         }
00171 
00172         public void setTextlineBoundingBoxes(List<Rect> textlineBoundingBoxes) {
00173                 this.textlineBoundingBoxes = textlineBoundingBoxes;
00174         }
00175 
00176         public void setWordBoundingBoxes(List<Rect> wordBoundingBoxes) {
00177                 this.wordBoundingBoxes = wordBoundingBoxes;
00178         }
00179 
00180         public void setStripBoundingBoxes(List<Rect> stripBoundingBoxes) {
00181                 this.stripBoundingBoxes = stripBoundingBoxes;
00182         }
00183 
00184         public void setCharacterBoundingBoxes(List<Rect> characterBoundingBoxes) {
00185                 this.characterBoundingBoxes = characterBoundingBoxes;
00186         }
00187 
00188         @Override
00189         public String toString() {
00190                 return text + " " + meanConfidence + " " + recognitionTimeRequired
00191                                 + " " + timestamp;
00192         }
00193 }
 Todo Clases Namespaces Archivos Funciones Variables