src/Translate.jl

Fri, 23 Oct 2020 18:00:53 -0500

author
Tuomo Valkonen <tuomov@iki.fi>
date
Fri, 23 Oct 2020 18:00:53 -0500
changeset 45
097f95638dba
parent 32
41d13bf7d637
permissions
-rw-r--r--

Indirect dependency workarounds

0
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
1 ######################################
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
2 # Image subpixel accuracy translation
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
3 ######################################
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
4
7
ab7d59b47140 Add __precompile__() for whatever it is worth
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
5 __precompile__()
ab7d59b47140 Add __precompile__() for whatever it is worth
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
6
0
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
7 module Translate
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
8
32
41d13bf7d637 Use @threadsif from AlgTools
Tuomo Valkonen <tuomov@iki.fi>
parents: 31
diff changeset
9 using AlgTools.Util: @threadsif
41d13bf7d637 Use @threadsif from AlgTools
Tuomo Valkonen <tuomov@iki.fi>
parents: 31
diff changeset
10
0
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
11 ##########
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
12 # Exports
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
13 ##########
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
14
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
15 export interpolate2d,
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
16 interpolate2d_quadrants,
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
17 extract_subimage!,
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
18 translate_image!,
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
19 DisplacementFull,
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
20 DisplacementConstant,
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
21 Displacement,
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
22 Image
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
23
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
24 ##################
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
25 # Types
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
26 ##################
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
27
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
28 # Two different types of displacement data supported:
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
29 # a) given in each pixel
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
30 # b) constant in space
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
31 Image = Array{Float64,2}
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
32 DisplacementFull = Array{Float64,3}
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
33 DisplacementConstant = Array{Float64,1}
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
34 Displacement = Union{DisplacementFull,DisplacementConstant}
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
35
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
36 #############################
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
37 # Base interpolation routine
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
38 #############################
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
39
31
62645d05985a Potentially optimise a tuple creation away
Tuomo Valkonen <tuomov@iki.fi>
parents: 30
diff changeset
40 @inline function interpolate2d_quadrants(v, x, y)
0
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
41 (m, n) = size(v)
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
42 clipx = xʹ -> max(1, min(xʹ, m))
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
43 clipy = yʹ -> max(1, min(yʹ, n))
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
44
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
45 xfℤ = clipx(floor(Int, x))
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
46 xcℤ = clipx(ceil(Int, x))
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
47 yfℤ = clipy(floor(Int, y))
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
48 ycℤ = clipy(ceil(Int, y))
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
49
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
50 xf = convert(Float64, xfℤ)
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
51 xc = convert(Float64, xcℤ)
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
52 yf = convert(Float64, yfℤ)
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
53 yc = convert(Float64, ycℤ)
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
54 xm = (xf+xc)/2
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
55 ym = (yf+yc)/2
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
56
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
57 vff = @inbounds v[xfℤ, yfℤ]
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
58 vfc = @inbounds v[xfℤ, ycℤ]
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
59 vcf = @inbounds v[xcℤ, yfℤ]
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
60 vcc = @inbounds v[xcℤ, ycℤ]
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
61 vmm = (vff+vfc+vcf+vcc)/4
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
62
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
63 if xfℤ==xcℤ
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
64 if yfℤ==ycℤ
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
65 # Completely degenerate case
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
66 v = vmm
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
67 else
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
68 # Degenerate x
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
69 v = vff+(y-yf)/(yc-yf)*(vfc-vff)
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
70 end
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
71 elseif yfℤ==ycℤ
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
72 # Degenerate y
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
73 v = vff + (x-xf)/(xc-xf)*(vcf-vff)
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
74 elseif y-ym ≥ x-xm
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
75 # top-left half
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
76 if (y-ym) + (x-xm) ≥ 0
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
77 # top quadrant
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
78 v = vfc + (x-xf)/(xc-xf)*(vcc-vfc) + (y-yc)/(ym-yc)*(vmm-(vcc+vfc)/2)
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
79 else
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
80 # left quadrant
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
81 v = vff + (y-yf)/(yc-yf)*(vfc-vff) + (x-xf)/(xm-xf)*(vmm-(vfc+vff)/2)
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
82 end
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
83 else
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
84 # bottom-left half
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
85 if (y-ym) + (x-xm) ≥ 0
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
86 # right quadrant
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
87 v = vcf + (y-yf)/(yc-yf)*(vcc-vcf) + (x-xc)/(xm-xc)*(vmm-(vcc+vcf)/2)
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
88 else
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
89 # bottom quadrant
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
90 v = vff + (x-xf)/(xc-xf)*(vcf-vff) + (y-yf)/(ym-yf)*(vmm-(vcf+vff)/2)
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
91 end
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
92 end
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
93
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
94 return v
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
95 end
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
96
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
97 ##############
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
98 # Translation
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
99 ##############
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
100
32
41d13bf7d637 Use @threadsif from AlgTools
Tuomo Valkonen <tuomov@iki.fi>
parents: 31
diff changeset
101 function translate_image!(x, z, u::DisplacementFull;
41d13bf7d637 Use @threadsif from AlgTools
Tuomo Valkonen <tuomov@iki.fi>
parents: 31
diff changeset
102 threads::Bool=false)
0
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
103 @assert(size(u, 1)==2 && size(x)==size(u)[2:end] && size(x)==size(z))
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
104
32
41d13bf7d637 Use @threadsif from AlgTools
Tuomo Valkonen <tuomov@iki.fi>
parents: 31
diff changeset
105 @threadsif threads for i=1:size(x, 1)
41d13bf7d637 Use @threadsif from AlgTools
Tuomo Valkonen <tuomov@iki.fi>
parents: 31
diff changeset
106 for j=1:size(x, 2)
31
62645d05985a Potentially optimise a tuple creation away
Tuomo Valkonen <tuomov@iki.fi>
parents: 30
diff changeset
107 x[i, j] = interpolate2d_quadrants(z, i - u[1, i, j], j - u[2, i, j])
0
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
108 end
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
109 end
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
110 end
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
111
32
41d13bf7d637 Use @threadsif from AlgTools
Tuomo Valkonen <tuomov@iki.fi>
parents: 31
diff changeset
112 function translate_image!(x, z, u::DisplacementConstant;
41d13bf7d637 Use @threadsif from AlgTools
Tuomo Valkonen <tuomov@iki.fi>
parents: 31
diff changeset
113 threads::Bool=false)
0
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
114 @assert(size(u)==(2,) && size(x)==size(z))
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
115
30
0b25d9ef7af9 Better @inbounds placements etc.
Tuomo Valkonen <tuomov@iki.fi>
parents: 29
diff changeset
116 @inbounds a, b = u[1], u[2]
20
9aef75a9452d Small possible optimisations
Tuomo Valkonen <tuomov@iki.fi>
parents: 17
diff changeset
117
32
41d13bf7d637 Use @threadsif from AlgTools
Tuomo Valkonen <tuomov@iki.fi>
parents: 31
diff changeset
118 @threadsif threads for i=1:size(x, 1)
41d13bf7d637 Use @threadsif from AlgTools
Tuomo Valkonen <tuomov@iki.fi>
parents: 31
diff changeset
119 for j=1:size(x, 2)
31
62645d05985a Potentially optimise a tuple creation away
Tuomo Valkonen <tuomov@iki.fi>
parents: 30
diff changeset
120 x[i, j] = interpolate2d_quadrants(z, i - a, j - b)
0
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
121 end
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
122 end
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
123 end
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
124
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
125 ######################
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
126 # Subimage extraction
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
127 ######################
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
128
32
41d13bf7d637 Use @threadsif from AlgTools
Tuomo Valkonen <tuomov@iki.fi>
parents: 31
diff changeset
129 function extract_subimage!(b, im, v::DisplacementConstant;
41d13bf7d637 Use @threadsif from AlgTools
Tuomo Valkonen <tuomov@iki.fi>
parents: 31
diff changeset
130 threads::Bool=false)
0
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
131 (imx, imy) = size(im)
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
132 (bx, by) = size(b)
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
133
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
134 # Translation from target to source coordinates
2
684032c29023 consistent signs
Tuomo Valkonen <tuomov@iki.fi>
parents: 0
diff changeset
135 vxʹ = (imx-bx)/2 - v[1]
684032c29023 consistent signs
Tuomo Valkonen <tuomov@iki.fi>
parents: 0
diff changeset
136 vyʹ = (imy-by)/2 - v[2]
0
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
137
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
138 # Target image indices within source image
29
05b11c96ef45 safeguards
Tuomo Valkonen <tuomov@iki.fi>
parents: 23
diff changeset
139 px = min(max(ceil(Int, max(1, vxʹ + 1) - vxʹ), 1), bx)
05b11c96ef45 safeguards
Tuomo Valkonen <tuomov@iki.fi>
parents: 23
diff changeset
140 py = min(max(ceil(Int, max(1, vyʹ + 1) - vyʹ), 1), by)
05b11c96ef45 safeguards
Tuomo Valkonen <tuomov@iki.fi>
parents: 23
diff changeset
141 qx = max(min(floor(Int, min(imx, vxʹ + bx) - vxʹ), bx), 1)
05b11c96ef45 safeguards
Tuomo Valkonen <tuomov@iki.fi>
parents: 23
diff changeset
142 qy = max(min(floor(Int, min(imy, vyʹ + by) - vyʹ), by), 1)
0
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
143
20
9aef75a9452d Small possible optimisations
Tuomo Valkonen <tuomov@iki.fi>
parents: 17
diff changeset
144 @inbounds begin
9aef75a9452d Small possible optimisations
Tuomo Valkonen <tuomov@iki.fi>
parents: 17
diff changeset
145 b[1:px-1, :] .= 0
29
05b11c96ef45 safeguards
Tuomo Valkonen <tuomov@iki.fi>
parents: 23
diff changeset
146 b[qx+1:bx, :] .= 0
30
0b25d9ef7af9 Better @inbounds placements etc.
Tuomo Valkonen <tuomov@iki.fi>
parents: 29
diff changeset
147 end
0
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
148
32
41d13bf7d637 Use @threadsif from AlgTools
Tuomo Valkonen <tuomov@iki.fi>
parents: 31
diff changeset
149 @threadsif false for i=px:qx
30
0b25d9ef7af9 Better @inbounds placements etc.
Tuomo Valkonen <tuomov@iki.fi>
parents: 29
diff changeset
150 @inbounds begin
20
9aef75a9452d Small possible optimisations
Tuomo Valkonen <tuomov@iki.fi>
parents: 17
diff changeset
151 b[i, 1:py-1] .= 0
29
05b11c96ef45 safeguards
Tuomo Valkonen <tuomov@iki.fi>
parents: 23
diff changeset
152 b[i, qy+1:by] .= 0
30
0b25d9ef7af9 Better @inbounds placements etc.
Tuomo Valkonen <tuomov@iki.fi>
parents: 29
diff changeset
153 for j=py:qy
31
62645d05985a Potentially optimise a tuple creation away
Tuomo Valkonen <tuomov@iki.fi>
parents: 30
diff changeset
154 b[i, j] = interpolate2d_quadrants(im, i+vxʹ, j+vyʹ)
20
9aef75a9452d Small possible optimisations
Tuomo Valkonen <tuomov@iki.fi>
parents: 17
diff changeset
155 end
0
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
156 end
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
157 end
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
158 end
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
159
5
29b38780d52b Add precompilation hints. Do they help or not?
Tuomo Valkonen <tuomov@iki.fi>
parents: 2
diff changeset
160 #####################################################
29b38780d52b Add precompilation hints. Do they help or not?
Tuomo Valkonen <tuomov@iki.fi>
parents: 2
diff changeset
161 # Precompilation hints to speed up compilation time
29b38780d52b Add precompilation hints. Do they help or not?
Tuomo Valkonen <tuomov@iki.fi>
parents: 2
diff changeset
162 # for projects depending on this package (hopefully).
29b38780d52b Add precompilation hints. Do they help or not?
Tuomo Valkonen <tuomov@iki.fi>
parents: 2
diff changeset
163 ######################################################
29b38780d52b Add precompilation hints. Do they help or not?
Tuomo Valkonen <tuomov@iki.fi>
parents: 2
diff changeset
164
29b38780d52b Add precompilation hints. Do they help or not?
Tuomo Valkonen <tuomov@iki.fi>
parents: 2
diff changeset
165 precompile(translate_image!, (Array{Float64,2}, Array{Float64,2}, Array{Float64,1}))
29b38780d52b Add precompilation hints. Do they help or not?
Tuomo Valkonen <tuomov@iki.fi>
parents: 2
diff changeset
166 precompile(translate_image!, (Array{Float64,2}, Array{Float64,2}, Array{Float64,3}))
29b38780d52b Add precompilation hints. Do they help or not?
Tuomo Valkonen <tuomov@iki.fi>
parents: 2
diff changeset
167 precompile(extract_subimage!, (Array{Float64,2}, Array{Float64,2}, Array{Float64,1}))
29b38780d52b Add precompilation hints. Do they help or not?
Tuomo Valkonen <tuomov@iki.fi>
parents: 2
diff changeset
168
0
eef71dd7202b Initialise
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
169 end

mercurial