code wiki / (root) / nx_areola_texture_test.nx

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}