Digital Signal Processing Reference
In-Depth Information
D.2.2 File
Node.java
D
Source Code
1
2
public class Node {
3
int x;
int y;
4
5
6
Node(int x, int y) {
this.x = x;
7
this.y = y;
8
}
9
10
11
void moveBy (int dx, int dy) {
x=x+dx;
12
y=y+dy;
13
}
14
15
}
D.2.3 File
Contour.java
1
import ij.IJ;
2
3
import java.awt.Polygon;
4
import java.awt.Shape;
5
import java.awt.geom.Ellipse2D;
6
import java.util.ArrayList;
7
import java.util.Iterator;
8
9
abstract class Contour {
// generic contour, never instantiated
10
int label;
ArrayList<Node> nodes;
11
12
13
Contour (int label, int initialSize) {
this.label = label;
14
nodes = new ArrayList<Node>(initialSize);
15
}
16
17
18
void addNode (Node n){
nodes.add(n);
19
}
20
21
22
Shape makePolygon() {
int m = nodes.size();
23
if (m>1){
24
int[] xPoints = new int[m];
25
int[] yPoints = new int[m];
26
int k = 0;
27
Iterator<Node> itr = nodes.iterator();
28
while (itr.hasNext() && k < m) {
29
Node cn = itr.next();
30