1 /**
2 * Copyright (c) 2011, The University of Southampton and the individual contributors.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without modification,
6 * are permitted provided that the following conditions are met:
7 *
8 * * Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer.
10 *
11 * * Redistributions in binary form must reproduce the above copyright notice,
12 * this list of conditions and the following disclaimer in the documentation
13 * and/or other materials provided with the distribution.
14 *
15 * * Neither the name of the University of Southampton nor the names of its
16 * contributors may be used to endorse or promote products derived from this
17 * software without specific prior written permission.
18 *
19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
23 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
26 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */
30 package org.openimaj.image.processing.morphology;
31
32 /**
33 * The Golay Alphabet of morphological structuring elements
34 *
35 * @author Jonathon Hare (jsh2@ecs.soton.ac.uk)
36 */
37 public class GolayAlphabet {
38 /** The H elements of the Golay Alphabet */
39 public final static StructuringElement [] H;
40
41 /** The I elements of the Golay Alphabet */
42 public final static StructuringElement [] I;
43
44 /** The E elements of the Golay Alphabet */
45 public final static StructuringElement [] E;
46
47 /** The L elements of the Golay Alphabet */
48 public final static StructuringElement [] L;
49
50 //TODO
51 // public final static StructuringElement [] M;
52 // public final static StructuringElement [] D;
53 // public final static StructuringElement [] F;
54 // public final static StructuringElement [] F2;
55 // public final static StructuringElement [] K;
56 // public final static StructuringElement [] C;
57
58
59 static {
60 H = new StructuringElement[] {
61 StructuringElement.parseElement("***\n***\n***", 1, 1)
62 };
63
64 I = new StructuringElement[] {
65 StructuringElement.parseElement("ooo\nooo\nooo", 1, 1)
66 };
67
68 E = new StructuringElement[] {
69 StructuringElement.parseElement("...\no*o\nooo", 1, 1),
70 StructuringElement.parseElement("oo.\no*.\noo.", 1, 1),
71 StructuringElement.parseElement("ooo\no*o\n...", 1, 1),
72 StructuringElement.parseElement(".oo\n.*o\n.oo", 1, 1)
73 };
74
75 L = new StructuringElement[] {
76 StructuringElement.parseElement("ooo\n.*.\n***", 1, 1),
77 StructuringElement.parseElement(".oo\n**o\n.*.", 1, 1),
78 // StructuringElement.parseElement("..o..\n...o.\n*.*.o\n.*...\n..*..", 2, 2),
79
80 StructuringElement.parseElement("*.o\n**o\n*.o", 1, 1),
81 StructuringElement.parseElement(".*.\n**o\n.oo", 1, 1),
82 // StructuringElement.parseElement("..*..\n.*...\n*.*.o\n...o.\n..o..", 2, 2),
83
84 StructuringElement.parseElement("***\n.*.\nooo", 1, 1),
85 StructuringElement.parseElement(".*.\no**\noo.", 1, 1),
86 // StructuringElement.parseElement("..*..\n...*.\no.*.*\n.o...\n..o..", 2, 2),
87
88 StructuringElement.parseElement("o.*\no**\no.*", 1, 1),
89 StructuringElement.parseElement("oo.\no**\n.*.", 1, 1),
90 // StructuringElement.parseElement("..o..\n.o...\no.*.*\n...*.\n..*..", 2, 2)
91 };
92 }
93 }