Differences between revisions 6 and 22 (spanning 16 versions)
Revision 6 as of 2008-04-26 12:35:05
Size: 2100
Editor: anonymous
Comment:
Revision 22 as of 2008-06-30 09:06:50
Size: 434
Editor: anonymous
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#acl AdminGroup:read,write #acl AdminGroup:read,write EditorGroup:read All:read
Line 6: Line 6:
SiaProgrammingPython
Line 8: Line 10:
= Fourier transformation = [[/Statistics]]
Line 10: Line 12:
= Statistics = [[/Texture]]
Line 12: Line 14:
= Convolution = [[/GammaFunction]]
Line 14: Line 16:
= Filter =
== Linear shift invariant ==
== Ranking filter ==
== Recursive filter ==
[[/Classification]]
Line 19: Line 18:
= Sampling and interpolation = [[/Convolution]]
Line 21: Line 20:
= Geometrical transformation =
Jähne 10.4, p 288
[[/Geometric transformation]]
Line 24: Line 22:
{{attachment:affine_transform_orig.png}} {{attachment:affine_transform.png}} [[/K-means algorithm and Vector Quantization]]
Line 26: Line 24:
{{{#!python
from scipy import *
from scipy.ndimage import *
from pylab import *
from scipy import linalg
[[/Filter]]
Line 32: Line 26:

def mapping_func((y,x)): # Uebergabe der Koordinaten als Tupel
        v0=array([y,x,1]).transpose()
        v1=dot(A,v0) # globale Variable A ist im Hauptprogramm deklariert
        return (v1[0],v1[1])

def display(B,n,t,y00,x00,y01,x01,y02,x02):
        figure(n)
        imshow(B,origin='lower',interpolation='nearest')
        text(y00,x00,'y0,x0')
        text(y01,x01,'y1,x1')
        text(y02,x02,'y2,x2')
        title(t)
        colorbar()
        show()


Y,X=512,512
B0=zeros((Y,X),float)

# Punkte im Originalbild
y00,x00,y01,x01,y02,x02=200,200,200,300,300,300
# Punkte im transformierten Bild
y10,x10,y11,x11,y12,x12=200,200,100,250,500,400
B0[y00:y02,x00:x02]=1 # Rechteck mit eins gefuellt
sigma=1
B0=gaussian_filter(B0,sigma) # Simuliere Aufnahmevorgang (Verunschaerfen)

close('all')
display(B0,1,'Original',y00,x00,y01,x01,y02,x02)

P0=array([[x00, x01, x02],[y00,y01,y02],[1.0,1.0,1.0]])
P1=array([[x10, x11, x12],[y10,y11,y12],[1.0,1.0,1.0]])

# Berechne Transformationsmatrix
A=dot(P1,linalg.inv(P0))


A=linalg.inv(A)
# Hier wird die Inverse von A berechnet,
# da geometric_transform "rueckwaerts" definiert ist


B1=geometric_transform(B0,mapping_func,prefilter=True,order=3,output_shape=(700,700))
display(B1,2,'Transformiert',y10,x10,y11,x11,y12,x12)}}}
= Multiscale representation =

= Edge detection =

= Texture =

= Segmentation =

= Inverse filtering =

= Morphology =

= Shape =

= Classification =
[[/Morphology]]

LehreWiki: SiaProgrammingPythonImageProc (last edited 2008-06-30 09:06:50 by anonymous)