1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 package org.openimaj.demos.image.text.extraction.swt;
31
32 import java.io.File;
33
34 import org.openimaj.image.DisplayUtilities;
35 import org.openimaj.image.ImageUtilities;
36 import org.openimaj.image.MBFImage;
37 import org.openimaj.image.colour.RGBColour;
38 import org.openimaj.image.text.extraction.swt.LetterCandidate;
39 import org.openimaj.image.text.extraction.swt.LineCandidate;
40 import org.openimaj.image.text.extraction.swt.SWTTextDetector;
41 import org.openimaj.image.text.extraction.swt.WordCandidate;
42
43 public class SWTTest {
44 public static void main(String[] args) throws Exception {
45 final SWTTextDetector detector = new SWTTextDetector();
46 detector.getOptions().direction = SWTTextDetector.Direction.LightOnDark;
47
48 final MBFImage image = ImageUtilities.readMBF(new File(
49 "/Users/jon/Pictures/Photo Booth Library/Pictures/Photo on 06-11-2014 at 09.50.jpg"));
50 image.flipX();
51
52
53
54
55
56 detector.analyseImage(image.flatten());
57
58 final MBFImage allLetters = image.clone();
59 for (final LetterCandidate lc : detector.getLetters())
60 allLetters.drawShape(lc.getRegularBoundingBox(), RGBColour.GREEN);
61 DisplayUtilities.display(allLetters, "All candidate letters before line grouping.");
62
63 for (final LineCandidate line : detector.getLines()) {
64 image.drawShape(line.getRegularBoundingBox(), 3, RGBColour.RED);
65
66 for (final LetterCandidate lc : line.getLetters())
67 image.drawShape(lc.getRegularBoundingBox(), 3, RGBColour.GREEN);
68
69 for (final WordCandidate wc : line.getWords())
70 image.drawShape(wc.getRegularBoundingBox(), 3, RGBColour.BLUE);
71 }
72
73 DisplayUtilities.display(image, "Filtered candidate letters, lines and words.");
74 }
75 }