DECLARE SUB smooth () DECLARE SUB copy2to1 () DECLARE SUB setpal () DECLARE SUB showpic1 () DEFINT I-N 'Smoothing a grey-scale image 'by taking 3x3 averages SCREEN 12 VIEW (160, 80)-(480, 400), , 12 WINDOW (0, 0)-(64, 64) CONST grey0 = 65536 + 256 + 1 DIM SHARED pic1(63, 63) AS INTEGER, pic2(63, 63) AS INTEGER CONST k1 = 1024 CONST c1 = k1 / 16 setpal RANDOMIZE TIMER FOR i = 0 TO 63 'ragged diamond FOR j = 0 TO 63 k = 63 - ABS(i - 32) - ABS(j - 32) k = k + 12 * RND 'change numbers to change image pic1(i, j) = k NEXT NEXT showpic1 FOR n = 1 TO 3 LOCATE 3, 1 PRINT "pass "; n smooth copy2to1 showpic1 NEXT SUB copy2to1 FOR i = 0 TO 63 FOR j = 0 TO 63 pic1(i, j) = pic2(i, j) NEXT NEXT END SUB SUB setpal FOR i = 1 TO 15 PALETTE i, 4 * i * grey0 NEXT END SUB SUB showpic1 FOR i = 0 TO 63 FOR j = 0 TO 63 LINE (i, j)-STEP(1, 1), pic1(i, j) \ 4, BF NEXT NEXT END SUB SUB smooth 'Take average of 3x3 block FOR i = 1 TO 62 FOR j = 1 TO 62 m = 0 FOR k = i - 1 TO i + 1 FOR l = j - 1 TO j + 1 m = m + pic1(k, l) NEXT NEXT pic2(i, j) = m \ 9 NEXT NEXT END SUB