2 (in-package :clem-test
)
4 (defun convolve-test ()
5 (let* ((h (clem:mat-scale
(clem:gaussian-kernel
2 1) 1d0
))
6 (g (make-instance 'double-float-matrix
:rows
512 :cols
512
8 (m (time (clem:discrete-convolve g h
:truncate t
))))
11 (defun convolve-test-2 ()
12 (let* ((g (clem:array-
>double-float-matrix
16 (h (clem:array-
>double-float-matrix
17 #2A
((1 2 1)(2 4 2) (1 2 1)))))
18 (clem::mat-scale
! h
(/ (clem:sum h
)))
20 (let ((m (clem:print-matrix
(clem:discrete-convolve g h
:truncate t
:norm-v nil
))))
23 (defun convolve-test-3 ()
24 (let* ((g (clem:array-
>double-float-matrix
28 (h1 (clem:array-
>double-float-matrix
30 (h2 (clem:transpose h1
))
32 (clem:discrete-convolve
33 (clem:discrete-convolve g h1
:truncate t
:norm-v nil
)
34 h2
:truncate t
:norm-v nil
))))
37 (defun convolve-test-4 ()
38 (let* ((g (clem:array-
>double-float-matrix
42 (hrow (clem:array-
>double-float-matrix
44 (hcol (clem:transpose hrow
))
45 (m (clem:print-matrix
(clem:separable-discrete-convolve g hcol hrow
:truncate t
:norm-v nil
))))
48 (defun convolve-test-5 ()
49 (let* ((g (clem:array-
>ub8-matrix
53 (h1 (clem:array-
>ub8-matrix
55 (h2 (clem:transpose h1
))
57 (clem:discrete-convolve
58 (clem:discrete-convolve g h1
:truncate t
:norm-v nil
)
59 h2
:truncate t
:norm-v nil
))))