nx_areola_texture_test.nx source
↩ module page · 51 lines · 1541 B
1// nx_areola_texture_test.nx -- smoke for areola-texture detector.
2
3import "nx_syscalls.nx"
4import "nx_image.nx"
5import "nx_areola_texture.nx"
6
7func fill_rect_skin(img: *Image, x0: i64, y0: i64, x1: i64, y1: i64) -> i64 {
8 var y: i64 = y0
9 while y < y1 {
10 var x: i64 = x0
11 while x < x1 {
12 nx_image_set(img, x, y, 0, 200); nx_image_set(img, x, y, 1, 150); nx_image_set(img, x, y, 2, 130)
13 x = x + 1
14 }
15 y = y + 1
16 }
17 return 0
18}
19
20func fill_black(img: *Image) -> i64 {
21 var y: i64 = 0
22 while y < img.height {
23 var x: i64 = 0
24 while x < img.width {
25 nx_image_set(img, x, y, 0, 0); nx_image_set(img, x, y, 1, 0); nx_image_set(img, x, y, 2, 0)
26 x = x + 1
27 }
28 y = y + 1
29 }
30 return 0
31}
32
33func main() -> i64 {
34 let v: *AreolaTextureVerdict = (sys_mmap(96)) as *AreolaTextureVerdict
35
36 // T1: empty -> UNKNOWN
37 let img1: *Image = nx_image_alloc(128, 128, 3)
38 fill_black(img1)
39 nx_areola_texture_compute(img1, v)
40 if v.kind != NX_AT_UNKNOWN { return 1 }
41
42 // T2: uniform skin torso -> center sub-region uniform -> TOO_SMOOTH
43 let img2: *Image = nx_image_alloc(128, 128, 3)
44 fill_black(img2)
45 fill_rect_skin(img2, 40, 40, 85, 85)
46 nx_areola_texture_compute(img2, v)
47 if v.torso_present != 1 { return 10 }
48 if v.kind != NX_AT_TOO_SMOOTH { return 11 }
49
50 return 0
51}