File: TestFFTCorrelation.tcl

package info (click to toggle)
paraview 4.0.1-1~bpo70%2B1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy-backports
  • size: 526,572 kB
  • sloc: cpp: 2,284,430; ansic: 816,374; python: 239,936; xml: 70,162; tcl: 48,295; fortran: 39,116; yacc: 5,466; java: 3,518; perl: 3,107; lex: 1,620; sh: 1,555; makefile: 932; asm: 471; pascal: 228
file content (68 lines) | stat: -rw-r--r-- 1,600 bytes parent folder | download | duplicates (12)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package require vtk
package require vtkinteraction

# Performs a correlation in frequency domain.

vtkImageCanvasSource2D s1
s1 SetScalarTypeToFloat
s1 SetExtent 0 255 0 255 0 0
s1 SetDrawColor 0
s1 FillBox 0 255 0 255
s1 SetDrawColor 2.0
s1 FillTriangle 10 100  190 150  40 250

vtkImageCanvasSource2D s2
s2 SetScalarTypeToFloat
s2 SetExtent 0 31 0 31 0 0
s2 SetDrawColor 0.0
s2 FillBox 0 31 0 31
s2 SetDrawColor 2.0
s2 FillTriangle 10 1  25 10  1 5


vtkImageFFT fft1
fft1 SetDimensionality 2
fft1 SetInputConnection [s1 GetOutputPort]
fft1 ReleaseDataFlagOff
fft1 Update

# Pad kernel out to same size as image.

vtkImageConstantPad pad2
pad2 SetInputConnection [s2 GetOutputPort]
pad2 SetOutputWholeExtent 0 255 0 255 0 0

vtkImageFFT fft2
fft2 SetDimensionality 2
fft2 SetInputConnection [pad2 GetOutputPort]
fft2 ReleaseDataFlagOff
fft2 Update

# conjugate is necessary for correlation (not convolution)
vtkImageMathematics conj
conj SetOperationToConjugate
conj SetInput1Data [fft2 GetOutput]
conj Update

# Corrleation is multiplication in frequencey space.
vtkImageMathematics mult
mult SetOperationToComplexMultiply
mult SetInput1Data [fft1 GetOutput]
mult SetInput2Data [conj GetOutput]

vtkImageRFFT rfft
rfft SetDimensionality 2
rfft SetInputConnection [mult GetOutputPort]

vtkImageExtractComponents real
real SetInputConnection [rfft GetOutputPort]
real SetComponents 0

vtkImageViewer viewer
viewer SetInputConnection [real GetOutputPort]
viewer SetColorWindow 256
viewer SetColorLevel 127.5


# make interface
source [file join [file dirname [info script]] WindowLevelInterface.tcl]