File: test_erode.pro

package info (click to toggle)
gnudatalanguage 1.1.3-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 80,832 kB
  • sloc: cpp: 198,435; ansic: 47,740; sh: 691; python: 474; makefile: 149; xml: 69; f90: 28
file content (53 lines) | stat: -rw-r--r-- 1,873 bytes parent folder | download | duplicates (6)
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
;
; Testing ERODE
; Todo: EROSION of images
;
; Licensed under GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
;
; ---------------------
; Modification history:
;
; 2018-08-30 : Bin Wu <bin.wu (at) edinsights (dot) no>
; - Initial version
; - Basic ERODE tests
; ---------------------
;

PRO TEST_ERODE, HELP = HELP, NERR_TOTAL, TEST = TEST, verbose = verbose

  IF KEYWORD_SET(HELP) THEN BEGIN
    PRINT, 'PRO TEST_ERODE, HELP=HELP, TEST=TEST, no_exit=no_exit, verbose=verbose'
    RETURN
  ENDIF
  NERR = 0

  ;; Test on 8-bit grayscale images. (There is no reference image can be used. Forget it.)
  ;File = FILE_SEARCH_FOR_TESTSUIT('tiff/8bit_gray_geo.tif')
  ;Image = READ_TIFF(File)
  ;Image = ERODE(Image,REPLICATE(1,5,5),/GRAY)

  ; Test on EXAMPLE 1 from http://www.harrisgeospatial.com/docs/ERODE.html
  Image = BYTE([[0,1,0,0],[0,1,0,0],[1,1,1,0],[1,0,0,0],[0,0,0,0]])
  S = [1,1]
  Result = ERODE(Image,S,0,0)
  Result_IDL = BYTE([[0,0,0,0],[0,0,0,0],[0,1,1,0],[0,0,0,0],[0,0,0,0]])
  IF ~ARRAY_EQUAL(Result, Result_IDL) THEN $
    ERRORS_ADD, NERR, 'Unexpected return value of EROSION on BINARY Image'

  ; Test on EXAMPLE 2 from http://www.harrisgeospatial.com/docs/ERODE.html
  Image = BYTE([2,1,3,3,3,3,1,2])
  ; S = [1,1]
  Result = ERODE(Image, S, /GRAY)
  Result_IDL = BYTE([0,1,1,3,3,3,1,1])
  IF ~ARRAY_EQUAL(Result, Result_IDL) THEN $
    ERRORS_ADD, NERR, 'Unexpected return values of EROSION on GRAYscale Image: EROSION using no padding'
  Result = ERODE([MAX(Image), Image], S, /GRAY)
  Result = Result[1:N_ELEMENTS(image)]
  Result_IDL = BYTE([2,1,1,3,3,3,1,1])
  IF ~ARRAY_EQUAL(Result, Result_IDL) THEN $
    ERRORS_ADD, NERR, 'Unexpected return values of EROSION on GRAYscale Image: EROSION using padding'

  BANNER_FOR_TESTSUITE, 'TEST_ERODE', NERR, /STATUS
  ERRORS_CUMUL, NERR_TOTAL, NERR
  IF KEYWORD_SET(TEST) THEN STOP
END