! BLUR EXPERIMENT ! This program presents 8 .jpg images plus a mask image saved in the same folder ! The name of the images should be "blur-" followed by a number ranging from 1 to 8 indicating an increasing level of blur !participants have to adjust a hairline to match the Princess'mouth slant PUBLIC nome$ CALL myopenfile (#1) DIM vettrand(1) LET nimages = 8 LET waitprincess = 2 MAT REDIM vettrand(nimages) CLEAR ASK PIXELS px,py SET WINDOW 1,px,1,py LET cx=int(px/2) LET cy=int(py/2) CALL urn (nimages,vettrand(),nimages) SET BACK "black" SET COLOR "white" PRINT "PLEASE USE THE - AND + BUTTONS IN THE NUMERIC KEYBOARD TO ALIGN THE LINE TO THE WOMAN MOUTH SLANT" PRINT "PRESS THE SPACE BAR WHEN YOU ARE SATISFIED WITH YOUR MATCH" PRINT "PRESS ANY KEY TO START" GET KEY AAAA CLEAR FOR i = 1 to nimages LET im$ = "blur-" & str$(vettrand(i))& ".jpg" CALL Read_Image("JPEG",imagedata$,im$) BOX SHOW imagedata$ at 0,0 LET v =0 SET COLOR "black" LET myy = 20 !changes hairline to match mouth y coordinate LET myx = 50 !changes hahirline to match mouth x coordinate LET long = 30 !changes hairliine lenghts DO CLEAR BOX SHOW imagedata$ at 0,0 PLOT myx-long, cy+myy;myx, cy+myy+v GET KEY mykey SELECT CASE mykey CASE 45 LET v=v-1 CASE 43 LET v=v+1 CASE 32 EXIT DO CASE else EXIT DO END SELECT LOOP until mykey = 32 CLEAR CALL savedata (#1,im$, v) CALL Read_Image("JPEG",mask$,"mask.jpg") BOX SHOW mask$ at 10,0 PAUSE waitprincess CLEAR NEXT i CLOSE #1 PRINT "THANK YOU, END OF THE EXPERIMENT" END !##################################################################### SUB savedata (#1, i$, v) PRINT#1: i$,v END SUB !##################################################################### SUB myopenfile(#1) DECLARE PUBLIC nome$ INPUT prompt "Please, write your initials and press enter ":nome$ CLEAR OPEN#1:name nome$&"-BLUR.txt",org text,create newold !per singolo sogg RESET#1:end SET #1 : MARGIN 150 SET #1 : ZONEWIDTH 22 PRINT#1:"BLUR LEVEL","PICTURE","ANSWER" END SUB !************************************************************* SUB urn(k, pp(),n) DIM qq(1) MAT redim qq(n) ! estrae a caso k elementi da un array di n RANDOMIZE FOR i= 1 to n LET qq(i)= i !vettore qq posizione i NEXT i FOR i= 1 to k LET kk= int(rnd*(n-i+1))+1 !rnd una funzione che va da 0 a 0.99, aggiungo 1 LET pp(i)= qq(kk) LET qq(kk)= qq(n+1-i) NEXT i END SUB