nx_skin_texture_test.nx source
↩ module page · 55 lines · 1699 B
1import "nx_syscalls.nx"
2import "nx_image.nx"
3import "nx_region.nx"
4import "nx_skin_texture.nx"
5
6func fill_rect_skin(img: *Image, x0: i64, y0: i64, x1: i64, y1: i64) -> i64 {
7 var y: i64 = y0
8 while y < y1 {
9 var x: i64 = x0
10 while x < x1 {
11 nx_image_set(img, x, y, 0, 200); nx_image_set(img, x, y, 1, 150); nx_image_set(img, x, y, 2, 130)
12 x = x + 1
13 }
14 y = y + 1
15 }
16 return 0
17}
18
19func fill_black(img: *Image) -> i64 {
20 var y: i64 = 0
21 while y < img.height {
22 var x: i64 = 0
23 while x < img.width {
24 nx_image_set(img, x, y, 0, 0); nx_image_set(img, x, y, 1, 0); nx_image_set(img, x, y, 2, 0)
25 x = x + 1
26 }
27 y = y + 1
28 }
29 return 0
30}
31
32func main() -> i64 {
33 // T1: empty (black) -> no torso, UNKNOWN
34 let img1: *Image = nx_image_alloc(64, 64, 3)
35 fill_black(img1)
36 let set1: *RegionSet = nx_region_segment(img1)
37 let v1: *SkinTextureVerdict = nx_skin_texture_compute(img1, set1)
38 let k1: i64 = v1.kind
39 let tp1: i64 = v1.torso_present
40 if k1 != NX_ST_UNKNOWN { return 1 }
41 if tp1 != 0 { return 2 }
42
43 // T2: uniform skin torso -> PLASTIC_SHEEN (smooth = high energy + low contrast)
44 let img2: *Image = nx_image_alloc(64, 64, 3)
45 fill_black(img2)
46 fill_rect_skin(img2, 20, 20, 45, 45)
47 let set2: *RegionSet = nx_region_segment(img2)
48 let v2: *SkinTextureVerdict = nx_skin_texture_compute(img2, set2)
49 let k2: i64 = v2.kind
50 let tp2: i64 = v2.torso_present
51 if tp2 != 1 { return 10 }
52 if k2 != NX_ST_PLASTIC_SHEEN { return 11 }
53
54 return 0
55}