C PROGRAM CMPTXT.FT C ------------------- C C C C ### SUBROUTINE CMPTXT C C C P LEMKIN C NIH C BETHESDA, MD C C C AUG 16, 1977 C AUG 15, 1977 C JULY 27, 1977 C JULY 26, 1977 C C PURPOSE C ------- C COMPUTE T15 AND T19 (RETURNED IN CURSYM AND SCALE C RESPECTIVELY) FROM DATA IN IBUF1[1:16,1:16] WITH THE NUMBER OF C POINTS IN FC. C [0] INITIAZATION S ENTRY CMPTX S CPAGE 2 S CMPTX, BLOCK 2 C C INIT VARIABLES COUNT=0.0 T15=0.0 T19=0.0 AMEAN=0.0 STDDEV=0.0 VARIANCE=0.0 C C IF FC=0 C THEN GOTO[4]; IF(FC)100,300,100 100 CONTINUE C@C****DEBUG**** C@ WRITE(3,332)FC C@332 FORMAT(' FC(# POINTS INSIDE WINDOW)=',F7.0) C@ WRITE(3,333)IBUF1 C@333 FORMAT(' ',16I4) C@C*************** C C C [1] COMPUTE TEXTURE FEATURES DO 420 IY1=1,16 IY=IY1-1 C DO 420 IX1=1,16 IX=IX1-1 C C COMPUTE: IZ=IX1*16+IY1 S TAD \IX1 S RTL; RTL S AND (0360 S TAD \IY1 S DCA \IZ IZ=IBUF1(IZ) C C IF IZ=0 C THEN SKIP THIS POINT IF(IZ)421,420,421 C C C COMPUTE THIS POINT 421 PIJ=FLOAT(IZ)/FC C C COMPUTE MEAN OF PK AMEAN=AMEAN+PIJ COUNT=COUNT+1.0 C C T19=T19+ABS(FLOAT(IX-IY))*PIJ 420 CONTINUE C C FIXUP T19 T19=0.5*T19 C C FIXUP MEAN AMEAN=AMEAN/COUNT C C C C [2] COMPUTE VARIANCE OF PK DO 430 IY1=1,16 IY=IY1-1 C DO 430 IX1=1,16 IX=IX1-1 C COMPUTE: IZ=IX1*16+IY1 S TAD \IX1 S RTL; RTL S AND (0360 S TAD \IY1 S DCA \IZ IZ=IBUF1(IZ) C C IF IZ=0 C THEN SKIP THIS POINT IF(IZ)443,430,443 C C C COMPUTE THIS POINT 443 PIJ=FLOAT(IZ)/FC DIFF=PIJ-AMEAN VARIANCE=VARIANCE+(DIFF*DIFF) 430 CONTINUE C C FIXUP VARIANCE VARIANCE=VARIANCE/COUNT C C COMPUTE T15 STDDEV=SQRT(VARIANCE) T15=STDDEV/AMEAN C C C [3] PRINT RESULTS 300 DO 440 I=1,3,2 440 WRITE(I,441)T15,STDDEV,AMEAN,T19 441 FORMAT(' T15 (COEF. VAR.)=',E10.3,/,' STDDEV (PK)=',E10.3, 1,', MEAN (PK)=',E10.3,/,' T19 (2ND DIAG MOM)=',E10.3) C C C [4] RETURN T15 IN CURSYM, T19 IN SCALE CURSYM=T15 SCALE=T19 S RETRN CMPTX C ************PARAMETERR***** S PIBUF1, \IBUF1 END