Digital Signal Processing Reference
In-Depth Information
D.1.2 File HarrisCornerDetector.java
D.1 Harris Corner Detector
1 import ij.IJ;
2 import ij.ImagePlus;
3 import ij.plugin.filter.Convolver;
4 import ij.process.Blitter;
5 import ij.process.ByteProcessor;
6 import ij.process.FloatProcessor;
7 import ij.process.ImageProcessor;
8
9 import java.util.Arrays;
10 import java.util.Collections;
11 import java.util.Iterator;
12 import java.util.Vector;
13
14 public class HarrisCornerDetector {
15
16
public static final float DEFAULT_ALPHA = 0.050f;
public static final int DEFAULT_THRESHOLD = 20000;
17
18
19
float alpha = DEFAULT_ALPHA;
int threshold = DEFAULT_THRESHOLD;
20
double dmin = 10;
21
22
23
final int border = 20;
24
25
//filter kernels (one-dim. part of separable 2D filters)
final float[] pfilt = {0.223755f,0.552490f,0.223755f};
26
final float[] dfilt = {0.453014f,0.0f,-0.453014f};
27
final float[] bfilt = {0.01563f,0.09375f,0.234375f,0.3125f
,0.234375f,0.09375f,0.01563f};
28
// = 1,6,15,20,15,6,1/64
29
30
31
ImageProcessor ipOrig;
FloatProcessor A;
32
FloatProcessor B;
33
FloatProcessor C;
34
FloatProcessor Q;
35
Vector<Corner> corners;
36
37
38
HarrisCornerDetector(ImageProcessor ip){
this.ipOrig = ip;
39
}
40
41
42
HarrisCornerDetector(ImageProcessor ip, float alpha, int
threshold){
this.ipOrig = ip;
43
this.alpha = alpha;
44
this.threshold = threshold;
45
}
46
47
Search WWH ::




Custom Search