1;
2; Testing DILATE
3; Todo: DILATION of images
4;
5; Licensed under GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
6;
7; ---------------------
8; Modification history:
9;
10; 2018-08-30 : Bin Wu <bin.wu (at) edinsights (dot) no>
11; - Initial version
12; - Basic DILATE tests
13; ---------------------
14;
15
16PRO TEST_DILATE, HELP = HELP, NERR_TOTAL, TEST = TEST, verbose = verbose
17
18  IF KEYWORD_SET(HELP) THEN BEGIN
19    PRINT, 'PRO TEST_DILATE, HELP=HELP, TEST=TEST, no_exit=no_exit, verbose=verbose'
20    RETURN
21  ENDIF
22  NERR = 0
23
24  ;; Test on 8-bit grayscale images. (There is no reference image can be used. Forget it.)
25  ;File = FILE_SEARCH_FOR_TESTSUIT('tiff/8bit_gray_geo.tif')
26  ;Image = READ_TIFF(File)
27  ;Image = DILATE(Image,REPLICATE(1,5,5),/GRAY)
28
29  ; Test on EXAMPLE 1 from http://www.harrisgeospatial.com/docs/DILATE.html
30  Image = BYTE([[0,1,0,0],[0,1,0,0],[0,1,1,0],[1,0,0,0],[0,0,0,0]])
31  S = [1,1]
32  Result = DILATE(Image,S,0,0)
33  Result_IDL = BYTE([[0,1,1,0],[0,1,1,0],[0,1,1,1],[1,1,0,0],[0,0,0,0]])
34  IF ~ARRAY_EQUAL(Result, Result_IDL) THEN $
35    ERRORS_ADD, NERR, 'Unexpected return value of DILATION on BINARY Image'
36
37  ; Test on EXAMPLE 2 from http://www.harrisgeospatial.com/docs/DILATE.html
38  Image = BYTE([2,1,3,3,3,3,1,2])
39  ; S = [1,1]
40  Result = DILATE(Image, S, /GRAY)
41  Result_IDL = BYTE([1,3,3,3,3,3,2,2])
42  IF ~ARRAY_EQUAL(Result, Result_IDL) THEN $
43    ERRORS_ADD, NERR, 'Unexpected return values of DILATION on GRAYscale Image: DILATION using no padding'
44  Result = DILATE([0, Image], S, /GRAY)
45  Result = Result[1:N_ELEMENTS(image)]
46  Result_IDL = BYTE([2,3,3,3,3,3,2,2])
47  IF ~ARRAY_EQUAL(Result, Result_IDL) THEN $
48    ERRORS_ADD, NERR, 'Unexpected return values of DILATION on GRAYscale Image: DILATION using padding'
49
50  BANNER_FOR_TESTSUITE, 'TEST_DILATE', NERR, /STATUS
51  ERRORS_CUMUL, NERR_TOTAL, NERR
52  IF KEYWORD_SET(TEST) THEN STOP
53END
54