Ir a la documentación de este archivo.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
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
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 }