Digital Signal Processing Reference
In-Depth Information
Projektive Transformation
16.4 Java-Implementierung
Im zweiten Beispiel ist die Anwendung der projektiven Abbildung ge-
zeigt. Die Abbildung T ist durch zwei Vierecke in Form der Punkte
p1..p4 bzw. q1..q4 definiert. Diese Punkte wurde man in einer kon-
kreten Anwendung interaktiv bestimmen oder waren durch eine Mesh-
Partitionierung vorgegeben.
Die Vorwartstransformation T und das zugehorige Objekt map wird
durch die Methode ProjectiveMapping.makeMapping() erzeugt (Zeile
22). In diesem Fall wird ein bilinearer Interpolator verwendet (Zeile 24),
die Anwendung der Transformation erfolgt wie im vorherigen Beispiel:
1 import ij.ImagePlus;
2 import ij.plugin.filter.PlugInFilter;
3 import ij.process.*;
4
5 public class PluginProjectiveMapping_ implements PlugInFilter
{
6
7
public int setup(String arg, ImagePlus imp) {
return DOES_8G;
8
}
9
10
11
public void run(ImageProcessor ip) {
Pnt2d p1 = new Pnt2d(0,0);
12
Pnt2d p2 = new Pnt2d(400,0);
13
Pnt2d p3 = new Pnt2d(400,400);
14
Pnt2d p4 = new Pnt2d(0,400);
15
16
17
Pnt2d q1 = new Pnt2d(0,60);
Pnt2d q2 = new Pnt2d(400,20);
18
Pnt2d q3 = new Pnt2d(300,400);
19
Pnt2d q4 = new Pnt2d(30,200);
20
21
22
ProjectiveMapping map =
ProjectiveMapping.makeMapping(p1,p2,p3,p4,q1,q2,q3,q4);
23
PixelInterpolator ipol = new BilinearInterpolator();
24
map.applyTo(ip, ipol);
25
}
26
27 }
Die korrespondierenden Punkte der Vierecke P1..P4 und Q1..Q4 wurde
man im praktischen Einsatz naturlich interaktiv spezifizieren.
Search WWH ::




Custom Search