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
|
-------------------------------------------------------------------------------
-- Creates a new function, with the name suffixed by "New". This new function
-- creates a new image, based on a source image, and calls the previous function
-- with this new image.
-- We assume here that the functions returns only one parameter or none.
local function OneSourceOneDest (funcname, width, height, color_space, data_type)
local func = im[funcname]
assert(func) -- see if function is really defined
-- define function with "New" suffix
im[funcname.."New"] = function (src_image, ...)
-- create destination image
local dst_image = im.ImageCreateBased(src_image, width, height, color_space, data_type)
-- call previous method, repassing all parameters
local ret = func(src_image, dst_image, ...)
if (ret) then
return ret, dst_image
else
return dst_image
end
end
end
-------------------------------------------------------------------------------
-- This function is similar to OneSourceOneDest, but it receives two source
-- images.
local function TwoSourcesOneDest (funcname, width, height, color_space, data_type)
local func = im[funcname]
-- see if function is really defined
assert(func, string.format("undefined function `%s'", funcname))
-- define function with "New" suffix
im[funcname.."New"] = function (src_image1, src_image2, ...)
-- create destination image
local dst_image = im.ImageCreateBased(src_image1, width, height, color_space, data_type)
-- call previous method, repassing all parameters
local ret = func(src_image1, src_image2, dst_image, ...)
if (ret) then
return ret, dst_image
else
return dst_image
end
end
end
-------------------------------------------------------------------------------
TwoSourcesOneDest("ProcessCrossCorrelation")
OneSourceOneDest("ProcessAutoCorrelation", nil, nil, nil, im.CFLOAT)
OneSourceOneDest("ProcessFFT")
OneSourceOneDest("ProcessIFFT")
|