RAND's recent concern with the enhancement of visual discrimination and the contact of staff members with advanced researchers in medicine combined to germinate the work reported here. The goal set was to improve and extend the medical pseudo-color technique used to study the distribution of radioactivity in a gland for the enhancement of visual discrimination in a black-and-white photograph. In the study reported here, one successful innovation was the use of the S-C 4020 computer-driven plotting system. Also the increase to 64 color gradations (instead of the earlier ten) was successful in substantially increasing the information visually available in a black-and-white photograph.
The ability to use black-and-white photographic information is limited by the observer's ability to distinguish shades of gray. This Memorandum describes a pseudo-color process which enhances visual discrimination by keying measured light intensity in a photograph to color. Test data obtained from the camera system of the Mariner IV have been processed as an example, and the resulting pseudo-color photograph is shown.
The authors wish to thank Barry W Boehm of The RAND Corporation for much help and timely encouragement.
This work was supported by the United States Air Force under Project RAND.
Original test data for the pseudo-color processing of the Mariner-Mars 1964 camera photographs were provided through the courtesy of the Jet Propulsion Laboratory, California Institute of Technology.
The photograph (Figure 1) is actually a pseudocolor presentation of test data from the camera system of the Mariner IV. The original test photograph (black and white) was a Mariner's eye view of a relief map of a Southern California area. The reproduction is an offprint from the April cover of Astronautics and Aeronautics, a publication of the American Institute of Aeronautics and Astronautics.
A high-quality black-and-white photograph customarily records the graded intensities of light in a scene by means of a series of shades of gray ranging from near black to near white. In viewing such a record, the observer's ability to use the recorded gradations, i.e., to detect patterns, recognize objects, and discriminate between objects having different intensities, is limited by his ability to detect differences among various shades of gray.
Modern photographic techniques, whether chemical or electronic, can separate and record many more tonal values than can the eye. The Mariner's camera system can discriminate among 64 intensity levels, [1] but the human visual system can discriminate only about 15 shades of gray between black and white).[2]
Hence, for man to take advantage of the superior discrimination of a camera system, the information should be so presented that the observer can distinguish any recorded level of intensity from any other.
Accordingly we decided to make use of man's excellent color-discriminat.[3] The human eye can distinguish many thousands of colors, the exact number depending on the level of illumination. Thus by keying measured intensity level to color, pseudo-color can give an observer much more information than can a gray-scale. A recent example of the use of color coding to increase contrast is the work of Adams and Jaffe [4] who coded various levels of radioactive intensity to various colors for medical presentations. About ten colors are used in their process, and there are about as many colors in this pseudo-color transformation as there are discriminable shades of gray. The primary advantage thus gained is simply an enhanced effective contrast and an improved apparent resolution.
As a test of our pseudo-color presentation scheme, we used the data obtained from photographs of a relief map, made as a test of the Mariner's camera system. The digital output from the camera system consists of 200 lines of 200 elements each. Each picture element is coded with two octal digits representing an intensity level from O to 63, the 0 representing the lightest shade and the 63 the darkest. The information is coded line by line on magnetic tape, packed six elements to a standard 36-bit word.
By use of an IBM 7044 computer and a Stromberg-Carlson S-C 4020 peripheral plotting system) the information on the tape was converted into 64 successive black-and-white frames of 35-mm film. Each frame was used to mask out all the elements except those corresponding to a single intensity level. The processing consisted of three steps:
The 64 black-and-white frames were then copied successively onto a single frame (64 exposures) of 35-mm Kodachrome II daylight film. A different filter was used over the light source (electronic flash) for each exposure. Starting with shade number 0, the hue of the filter was red. Successive combinations of subtractive-wedge filters gradually shifted through orange, yellow, green, and cyan, and terminated with blue for shade 63. No nonspectral hues (magentas) were used. Thus, light areas in the original appear red, medium areas green, and dark areas blue, The accompanying color photograph is the result of this work. The two main problems in this transformation were (1) the frame-to-frame registration, both in the S-C 4020 camera system and in making the composite on color film, and (2) a magenta wash on the Kodachrome, which was caused by unwanted light passing through the dense areas of the black-and-white film.
A method is now being developed by which the 64 shades of gray may be re-formatted and masking areas added to make only four exposures necessary. These would be made through a minimum number of filters with obvious advantages for registration and fogging.
We hope soon to be able to apply the pseudo-color process to the Mariner's actual photographs of the Martian surface. We feel that the pseudo-color technique shows great promise in the presentation of television data from space-exploration vehicles and weather satellites, and in the presentation of electronic medical data.
$JCB 5754,MARINR,R3500,15,250,I30,P PAL 25 USES SC-4020 SIMULATOR $CLOSE S.SU00,REWIND $CLOSE S.SU08,REWIND $CLOSE S.SU09,REWIND $IPJOB PRSORT MAP $FILE PRSORT 'INTERM',U00,*,TYPE1,REEL, $ETC PRSORT BLOCK=1950,LRL=3,RCT=65C, $ETC PRSORT ERR=RERRX.,EOF=RE0FX.,EOH=RECRX, $FILE PRSORT 'INPUT',U09,*,TYPE1,REEL, $ETC PRSORT BLOCK=36,LRL=36,RCT=1, $ETC PRSORT ERR=RERRX.,EOF=RE0FX.,BOR=RECRX.
$IBFTC PRSORT C C C UNPACK THE PHOTO INFORMATION FROM THE JPL TAPE AND PREPARE AN C INPUT TAPE FOR SCRT. C COMMON /PCOP/ INFC(36), OUTREC(210) DIMENSION TITLE(4) INTEGER OUTREC INTEGER CELLNO C C CLOSE INPUT FILE AND OPEN WITH A REWIND. C CALL CLSEIN CALL OPENIN C C CLOSE INTERMEDIATE FILE AND OPEN MITH A REWIND, C CALL CLSINT CALL OPNINT C C READ IN A BCD ARRAY TO BE USED TO IDENTIFY EACH SLIDE. C READ 4000, TITLE PRINT 2001, TITLE C C READ IN THE FILE NUMBER (FRAME NUMBER) TO BE PROCESSED, C READ 3000, NFILE PRINT 3000, NFILE C C NO. OF RECORDS ON FILE 'NFILE'. C READ 3000, N PRINT 3000, N C SKIP TO THE FILE TO BE PROCESSED {'C' IS A DUMMY ARGUMENT), C CALL SKIPF(0, NFILE-1) C C W060 'SKIPF·) CLOSES THE FILE WHEN SKIPPING. IT MUST BE C RE-OPENED WITHOUT RRWINDING. C CALL OPENNR C C THE FIRST THREE RECORDS CONTAIN TITLE AN FILE NO. INFORMATION, C WRITTEN IN A FORM THAT WILL SURVIVE SORTING. C CALL PUTREC(-3, TITLE(1), TITLE(2)) CALL PUTREC(-2, TITLE(3), TITLE(4)) CALL PUTREC(-1, NFILE, ZERO) C DO 100 LINENO = 1, N C C READ IN A 36-WORD RECORD AND UNPACK IT TC +MAKE A 200-WORD RECORD. C ARRAY 'OUTREC' HAS 10 EXTRA WORDS TO ALLOW FOR SPILLOVER IN C SURROUTINE 'UNPACK'. CALL SETREC CALL UNPACK C C NOW WRITE THE COLOR, LINE NUMBER, AND CELL NUMBER (CULUMN) FOR C EACH CELL OF THE CURRENT LINE C DO 10 CELLNO = 1, 200 CALL PUTREC(OUTREC(CELLNO),LINENO,CELLNO) 10 CONTINUE C 100 CONTINUE C C CLOSE AND REWIND THE INPUT AND INTERMEDIATE FILES. C THE INTERMEDIATE FILE HILL NOH BE PROCESSED BY SORT. C CALL CLSEIN CALL CLSINT C STOP C 2001 FORMAT(1X, 4A6) 3000 FORMAT(I4) 4000 FORMAT(4A6) END
$IPMAP UNPACK * UNPACK THE 36 WORD MARINER RECORD INTG A 200 WORD RECORD. * PMC CONTRL POOP USE POOP INREC BSS 36 * SINCE 6*34 = 204, 'OUTREC' NEEDS 204 WORDS. THE EXTRA SIX WORDS * ARE JUST FOR SAFETY. * OUTREC BSS 210 USE * ENTRY UNPACK UNPACK SAVE 1,2,4 * AXT 210,4 AXT 34,1 * LOOP1 CAL INREC+35,1 LOQ INREC+36,1 LGR 11 AXT 6,2 * LOOP2 LGL 6 SAC OUTREC+210,4,5 TXI *+1,4 TIX LOOP2,2,1 * TIX LOOP1,1,1 * RETURN UNPACK END
$IPMAP INPRIN * NECESSARY ROUTINES FOR FILE 'INPUT' * CONTRL POOP USE POOP INREC BSS 36 OUTREC BSS 210 USE * EXTERN INPUT * * GET A 36-WORD RECORD AND PLACE IT IN 'INREC' * ENTRY GETREC GETREC SAVE TSX S.GETL,4 PZE INPUT,,INREC RETURN GETREC * * OPEN THE INPUT FILE WITH A REWIND. * ENTRY OPENIN OPENIN SAVE TSX S.OPEN,4 PTW INPUT REWIND BINARY.INPUT RETURN OPENIN * * CLOSE THE INPUT FILE WITH A REWIND. * ENTRY CLSEIN CLSEIN SAVE TSX S.CLSE,4 PZE INPUT REWIND,NOUNLOAD,END-OF-DATA RETURN CLSEIN * * OPEN THE INPUT FILE WITHOUT A REWIND. * ENTRY OPENNR OPENNR SAVE TSX S.OPEN,4 MTW INPUT NOREWIND,BINARY.INPUT RETURN OPENNR END
$IPMAP INPUTV * SPECIAT *UTVAR.* DECK TO BE USED WITH W060 ('SKIPF'). * THE ADDRESS OF FILE 'INPUT', REGARDLESS OF THE ARGUMENT SUPPLIED. * * EXTERN INPUT * ENTRY UTVAR. UTVAR. NULL CLA POINTR STO 2,4 TRA 1,4 * POINTR PZE FILINP FILINP PZE INPUT END
$IPMAP OUTINT * OUTPUT ROUTINES FOR FILE 'INTERM' - INTERMEDIATE FILE WHICH WILL * BE PROCESSED BY SORT. * EXTERN INTERM * * PLACE A THREE WORD RECORD ON FILE 'INTERM;. * ENTRY PUTREC PMC PUTREC SAVE * * 'SAVE' MACRO SETS XR4 TO COMPLEMENT OF CALLING ADDRESS. * CLA* 3,4 FIRST ARGUMENT STO BUFFR CLA* 4,4 SECOND ARGUMENT STO BUFFR+1 CLA* 5,4 THIRD ARGUMENT STO BUFFR+2 TSX S.PLTL,4 PZE INTFRM.,BUFFR RETURN PUTREC PMC * * CLOSE INTERMEDIATE FILE WITH AN EBD-OF-FILE MARK AND REWIND. * ENTRY CLSINT CLSINT SAVE TSX S.CLOSE,4 PZE INTFRM REWIND,NOUNLOAD.END-OF-DATA. RETURN CLSINT * * OPEN INTERMEDIATE FILE WITH A REWIND * ENTRY OPNINT OPNINT SAVE TSX S.OPEN,4 PTH INTERM REWIND,BINARY,OUTPUT RETURN OPNINT * BUFFR BSS 3 END
$ENTRY PRSORT SOUTHERN CALIFORNIA 1 200 $IBSYS $CLOSE S.SUC0,REWIND $CLOSE S.SUC9,REMOVE $IBSRT FILE, INP/1, MOD/B, BLC/1950, REW FILE, OUT, MOD/B, BLC/1950, REW REC, LEN/(3), FIELD/(36BS, 72BS) SORT, FIL/1, SEQ/S,ORC/2, FIELD/(IA) SYS, INP/S.SU00, MER/(0, 81, OUT/S.SC08,DISK/145 OPT, NOCK END $IBSYS $CLOSE S.SOK1,REWIND $CLOSE S.SU08,REWIND
$IBJCB MARINR MAP $FILE MARINR 'INTERM',U08.*.TYPF1,REEL, $ETC MARINR BLOCK=1950,LRL=3,RCT=650, $ETC MARINR ERR=RERRX.,EOF=RECX.,BCR=RECPX. $IBFTC MARINR C JOB NO. 5754 - MARINER IV COLOR PHOTOS C C READ THE SORTED PHOTO TAPE AND WRITE AN SC-4020 TAPE. C INTEGER EOFRET, SHADE, OLDSHD, CELLNC, FRAMNC INTEGER BLSHDS(64, 2) DIMENSION TITLE(4) EXTERNAL TABLIV C C CLOSE, REWIND AND OPEN THE INTERMEDIARE FILE (OUTPUT FROM SORT). C CALL CLSINT CALL OPNINT C NECESSARY INITIALIZATION FOR THE SC-4020 C CALL CAMRAV(935) CALL CHSIZV(8, 8) CALL RITSTV(48, 66, TABLIV) CALL BRITEV C C WRITE A 20-FRAME LEADER. C DO 4 I = 1, 20 CALL FRAMEV 4 CONTINUE C C SET UP END-OF-FILE CONTROL TO TRANSFER TO STATEMENT 9000 WHEN C END-OF-FILE IS REACHED ON FILE 'INTERM'. ('0' IS A DUMMY C ARGUMENT.) ASSIGN 9000 TO EOFRET CALL EOFCTL(0,EOFRET) C C RETRIEVE TITLE AND FRAME NUMBER INFORMATION FROM THE INTERMEDIATE C FILE AND PRINT IT AS A CHECK. C CALL GETREC(JUNK, TITLE(1), TITLE(2)) CALL GETREC(JUNK, TITLE(3), TITLE(4)) CALL GETREC(JUNK, FRAMNO, JUNK) C PRINT 1000, TITLE, FRAMNO C C GET FIRST RECORD FROM INTERMEDIATE FILE. C CALL GETREC(SHADE, LINFNO, CELLNO) NREC = 1 C NBLANK = 0 C C TEST TO SEE IF FIRST SHADE IS 0. IF NOT, MAKE APPROPRIATE C ENTRIES IN ARRAY 'BLSHDS'. C IF(SHADE .EQ. 0)GO TO 5 NBLANK = NBLANK + 1 BLSHDS(NBLANK,1) = 0 BLSHDS(NBLANK,2) = SHADE - 1 C 5 CONTINUE C C ADVANCE THE FILM AND PRINT A TITLE, FRAME NUMBER, SHADE NUMBER, C AND BORDER. C CALL FRAME(TITLE, FRAMNO, SHADE) C 10 CONTINUE C C PRINT THE CELL JUST READ ON THE SC-4020 FRAME, THEN READ IN A NEW C RECORD. CONTINUE IN THIS FASHION UNTIL A NEW SHADE IS ENCOUNTERED C CALL PRCELL(LINENO, CELLNO) C OLDSHD = SHADE CALL GETREC(SHADE, LINENO, CELLNO) NREC = NREC + 1 C IF(SHADE .EQ. OLDSHD) GO TO 10 C C TEST FOR A GAP IN THE SHADES USED. IF THERE IS A GAP, MAKE AN C APPRPRIATE ENTRY IN 'BLSHDS'. C IF(SHADE .EQ. OLDSHD+1) GO TO 5 NBLANK = NBLANK + 1 BLSHDS(NBLANK, 1) = OLDSHD + 1 BLSHDS(NBLANK, 2) = SHADE - 1 C GO TO 5 C C C RETURN HERE WHEN END-OF-FILE IS ENCOUNTERED BY 'GETFFPC'. C 9000 CONTINUE C C PRINT THE TOTAL NUMBER OF RECORDS READ. C NREC SHOULD TOTAL 40,000. C PRINT 4000, NREC C C TEST TO SEE IS LAST POSSIBLE SHADE WAS USED. IF NOT, MAKE AN C ENTRY IN 'BLSHDS'. C IF(OLDSHD .EQ. 63) GO TO 9010 C NBLANK = NBLANK + 1 BLSHDS(NBLANK, 1) = OLDSHD + 1 BLSHDS(NBLANK, 2) = 63 C 9010 CONTINUE C C WRITE A 20-FRAME TRAILER. C DO 9014 I = 1, 20 CALL FRAMEV 9014 CONTINUE C C WRITE A MESSAGE INDICATING WHICH SHADES WERE NOT USED> C CALL MESSAGE(TITLE,FRAMNO,NBLANK,BLSHDS) C C CLOSE AND REWIND THE INTERMEDIATE FILE. C CALL CLSINT C C CLOSE AND WRITE OUT THE STANDARD OUTPUT BUFFER. THIS ENSURES THAT C ALL INFORMATION ON THE STANDARD OUTPUT FILE APPEARS BEFORE THE C SC-4020 SIMULATION, WHICH DOES NOT USE A STANDARD FILE. C CALL CLEAN C C A SPECIAL 'EXIT' ROUTINE CAN BE PROVIDED TO CALL THE SC-4020 C SIMULATOR. CALL EXIT C C FORMATS FOR 'ECHO CHECK'. C 1000 FORMAT(1H1, 4A6, 7H FRAME ,I4) 4000 FORMAT(7H NREC= ,I13) END
$IBFTC FRAME C 4X4 CELLS - BRIGHT MOCE C C ADVANCE THE FILM TO A NEW FRAME AND PRINT BORDER AND TITLE C INFORMATION ON IT. C SUBROUTINE FRAME(TITLE, FRAMNO, SHADE) DIMENSION TITLE(14) DIMENSION ALPHA(4) INTEGER FRAMNO, SHADE C C ADVANCE FILM C CALL FRAMEV C C PRINT BORDER. C CALL LINEV(913, 025, 913, 826) CALL LINEV(112, 025, 112, 826) CALL LINEV(112, 025, 913, 025) CALL LINEV(112, 826, 913, 826) C C PRINT TITLE. C CALL RITE2V(24,957, 1023, 90, 1, 21, +1, TITLE, NLST) C C CONVERT FRAME AND SHAOE NUMBER TO BCD USING INTFRNAL FILE 99. C CALL BCDCON(ALPHA) WRITE(99, 2000) FRAMNO, SHADE C C PRINT FRAME ANO SHADE NUMBER. C CALL RITE2V(24, 891, 1023, 90, l, 19, +l, ALPHA,NLST) C RETURN C C FORMAT FOR FRAME AND SHADE NUMBER. C 2000 FORMAT( 5HFRAME, I3, 8H, SHADE , I3) END
$IBFTC PRCELL C PRINT A 4-D0T CELL AT THE APPROPRIATE LINE NUMBER AND CELL C (COLUMN) NUMBER. THIS ROUTINE DIVIDES THE PHOTO AREA INTO 200 C LINES AND 200 COLUMNS. C SUBROUTINE PRCELL(LINENO, CELLNO) INTEGER CELLNO C IX = 109 + 4*CELLNO IY = 826 - 4*LINENO C DO 100 I = 1, 2 DO 10 J = 1, 2 C C '42' IS THE CODE FOR THE CHARACTRON PLOTTING DOT. C CALL PLOTV(IX+J, IY+ I, 42) C 10 CONTINUE 100 CONTINUE C RETURN END
$IBFTC MESSGE C PRINT A MESSAGE LISTING THE SHADES WHICH DO NOT APPEAR IN THE C PICTURE. C SUBROUTINE MESSGE(TITLE, FRAMNO, NBLANK, BLSHDS) INTEGER FRAMNO, BS1, BS2, BLSHDS(64, 2) DIMENSION TITLE(4) C PRINT 1000, TITLE PRINT 1001, FRAMNO C IF(NBLANK .NE. 0) GO TO 10 C PRINT 1004 RETURN C 10 CONTINUE C DO 100 I = 1, NBLANK C BS1 = BLSHDS(I, 1) BS2 = BLSHDS(I, 2) C IF(BS1 .EQ. BS2) PRINT 1002, BS1 IF(BS1 .NE. BS2) PRINT 1003, BS1, BS2 C 100 CONTINUE C RETURN C 1000 FORMAT(1H1, 4A6) 1001 FORMAT(44H0THE FOLLOWING SGADES DO NOT APPEAR IN FRAME ,I4/) 1002 FORMAT(I4) 1003 FORMAT(I4, 3H -, I4) 1004 FORMAT(46H0ALL SHADES FROM 0 TO 63 APPEAR ON THIS FRAME.) END
$IPMAP CLEAN * CLOSE AND UNBUFFER THE STANDARD OUTPUT FILE. * ENTRY CLEAN CLEAN TRA ** SXA XR4,4 TSX S.CLSE,4 MON S.FBOU XR4 AXT **,4 TRA CLEAN END
$IBFTC SCEXIT C SPECIAL 'EXII' ROUTINE CALLS THE SC-402O SIMULATOR BEFORE C RETURNING TO $IBSYS. SUBROUTINE EXIT CALL SCSIM STOP END
$IPMAP INPNT * INPUT ROUTINES FOR FILE 'INTERM' - INTERMEDIATE FILE WHICH HAS * BEEN PROCESSED BY SORT. EXTERN INTERM PMC * * GET A 3-WORD RECORD FROM FILE 'INTERM'. * ENTRY GETREC GETREC SAVE * * 'SAVE' MACRO SETS XR4 TO COMPLEMENT GF CALLING ADRESS. * XR4 IS RESTORED TO THIS VALUE BY 'GXR4' AFTER TSX TO S.GFIL SXA GXR4,4 TSX S.GETL,4 PZE INTERM..BUFFR GXR4 AXT **,4 CLA BUFFR STO* 3,4 FIRST ARGUMENT CLA BUFFR+1 STO* 4,4 SECOND ARGUMENT CLA BUFFR+2 STO* 5,4 THIRD ARGUMENT RETURN GETREC PMC STO at SFCEND ARGUMENT * * CLOSE INTERMEDIATE FILE WITH A REWIND. * ENTRY CLSINT CLISNT SAVE TSX S.CLSE,4 PZE INTERM REWIND.NOUNLDED,END-OF-DATA RETURN CLSINT * * OPEN INTERMEDIATE FILE WITH A REWIND. * ENTRY OPNINT CPNINT SAVE TSX S.OPEN,4 PTW INTERM REWIND,BINARY,INPUT RETURN OPNINT * BUFFR BSS 3 END $IPMAP INTUTV * SPECIAT 'UTVAR.' DECK TO BE USEO WITH W061 ('ECFCTL'). IT * RETURNS THE ADDRESS OF FILF 'INTERN', REGARDLESS CF THE ARGUMENT * SUPPLIED IT. * EXTERN INTERM * ENTRY UTVAR UTVAR. NULL CLA POINTR STO 2,4 TRA 1,4 * POINTR PZE FILINT FILINT PZE INTFRM END $ENTRY MARINR $IBSYS $CLOSE S-SU08.REMOVE $IPSYS ENDJOB TOTAL NUMBER OF CARDS
1. Leighton, R B, The Photographs from Mariner IV, Sci. Am., 214, April 1966, 54-68.
2. Le Grand, Y, Light, Colour, and Vision, Chapman and Hall, Ltd., London, 1957.
3. MacAdam, D L, Visual Sensitivities to Color Differences in Daylight, J, Opt. Soc. Am., 32, 1942, 247-274.
4. Adams, R and Jaffe, H L, A New Organ Scan Display in Polaroid Color, J. Nuclear Medicine, 5, No. 5, 1964, 346-347.