NBSIR 75-699

The Calibration of Piiotograpiiic

Edges at NBS

Richard E. Swing

Institute for Basic Standards

National Bureau of Standards

Washington, D. C. 20234

April 22, 1975

Interim Report

U.S. DEPARTMENT OF COIVIMERCE

NATIONAL BUREAU OF STANDARDS

NBSIR 75-699

THE CALIBRATION OF PHOTOGRAPHIC

EDGES AT NBS

Richard E. Swing

Institute for Basic Standards

National Bureau of Standards

Washington. D. C. 20234

April 22, 1975

Interim Report

U.S. DB>ARTMENT OF COMMERCE, Rog«rs C.B. Morton. Secrvtary

NATIONAL BUfEAU OF STANDARDS. Richard W. RotMrts. 0»r«c«or

This document has been prepared as part of the program to upgrade

and Inprove the density-measurement capability at NBS throu^ research

in the Optics and Micrometrology Section of the Optical Physics

Division. It is the second of several that will be released in this

subject-area, and vd.ll occasionally undergo revision and expansion as the need arises. At the end of the program, a conplete NBS report on

Densitometry and related matters will be prepared and published.

IlfTRDDUCTION

MBS has produced photographic edges for optical and photographic

amilslon testing for more than ten years, but has lacked a

quantitative analytical procedure to certify their quality. The

technique used to make these edges employs x-ray exposure of hl^

resolution plates (with a thin tantalian strip for the edgedlscontlnulty) , and their subsequent chemical processing Is aimed at

preventing adjacency effects. Because of the available x-ray

equipment, exposure quality and uniformity have not always been

consistent, and a need for quantitative evaluation of the edge has

always existed.

Past evaluative procedures traced the edge cm the NBS

mlcrodensitometer (a Kodak Model III, modified)* and Inspected the

obvious characteristics of the chart record such as steepness of

slope, synmetry, exposure or processing variations manifested by the

lack of smoothness in the trace and tYie variation in density cai the

toe and shoulder (to detect possible adjacency effects), always in a

qualitative manner. The present note is concerned with cooputer

analysis of the traces to quantify the statements made about the edges

and their quality.

TOE ANALYSIS OF EDGES

The major parameter used to characterize the edge is called

acutance. This is a property that relates to subjective (visual)

Judgements of "sharpness," and is discussed In more detsill in Ref. 1.

It is a calculation of the mean-square slope of an edge, between two

points along it, corrected (or adjusted) for the density difference

between these points. This note documents a computer program called

ACIMTF that calculates this quantity.

A further consideration of this note is the use of edges to test

or evaluate an optical instrument throu^i a procedure known as edgegradient analysis. When the edge is placed in a microdensitonieter and

scanned, the resulting chart record can be analyzed to determine the

optical transfer function of the microdensltometer. There are other

variations to edge-analysis, but this Is the only one considered in

this note. To carry out these calculations, a second program is

needed. It is called EIOTER and this note also documents that

program.

*Certaln carmerclal Instruments and equiprnent are identified in this

report in order to specify the experimental procedure adequately. In no

case does such identification imply reccjimendation or endorsement by

NBS, nor does it iiiply that the equipment identified is necessarily the

best available for the purpose. Further, the equipment may not be

identical to those models in current productlcai that bear naninally

similar designations of model type.

1
I Finally, because a plot of the modulation transfer function (WTP)

is often useful for diagnostic and display purposes, a program that

plots the NTTF produced by EMTFER has been prepared. It is called

MQWLT, and this note documents that program as well.

All three programs are written in BASIC, a language often

available on the time-sharing conputers of the kind used at NBS by the

Optics and Micronetrology Section. Such systems are adequate for the

task, are easily used by the inexperienced, the costs are low and the

tum-around-time is short. For the accuracy carmensurate with the

analyses described in this note, use of a more sophisticated ccxiputer

with a hi^er-level prograiiming language vwuld not be cost-effective

and would probably provide a corputational "overkill." Since these

programs mi^t also be useful to those outside NBS, it was felt that

the BASIC language would offer the least problem in adaptation to

other conputers. These three program are used at NBS, exactly as written and listed in this note, to calibrate and examine photogra^iic

edges made there.

The various plots and figures of this note all derive from the

same density calibration and edge-trace infonnation located in the

data section of ACUMTF.

ACiMTF ; . : .

The program ACIMTF calculates axiutance frcan a microdensitometer

trace of an edge. Acutance is defined analytically by

n

Acutance = L_z_2 • (1)

In this equation, D^^ - Da is the density range over which the actual

calculations are imde. The end-points of the calculation are

critical; if too much of the edge trace is included, the value of

acutance will be too low, while the opposite it true if too little is

included. It was found (Ref . 1) that the end points should be located

on that portion of the trace where the slcpe (AD/Ax) = 0.005, with x measured in micrometres. Ihe accuracy of the calculations is inproved

when n, the number of (aD/Ax)'s, is large.

Originally, acutance was devised to measure an attribute of photographic images that would correlate well with subjective Inpressions

of image "sharpness." Thus, the Image of an edge of the photogr^hic

material was analyzed and the property, acutance, ascribed to the

material itself. The hi^er the value of acutance, the hi^ier the

corresponding quality. However, if the edge itself is traced, an

2
analogous acutance can be calculated for a given set of

mlcrodensitoneter parameters. This acutance applies only to the given

set of parameters, and constitutes a calibration of sorts when those

conditions can be duplicated on another instrument. When edges of

extremely hi^ acutance (values of 100,000 and larger) are used to

test an optical instrument, no significant correction r^ed be applied

for the inherent imperfections of the edge, unless the response of the

instrument itself approaches the quality of the edge. The program

ACIMTF is Intended for use in calibrating the edges made at NBS. When

reported, values of acutance are always acconpanied by details of the

optics of the microdensitometer making the trace. Because of the

problems of alignment of the scanning slit with respect to the edge,

acutance values are always the average of at least three separate

determinations. A listing of ACIMTF is shown in Appendix A.

Data Input to ACIMTF

The basic data for ACIMTF are:

1) A density calibration, in the form of diffuse density

versus chart reading, and

2) An edge-trace, in the form of chart reading versus

distance across the edge, taken from the chart recording

produced by the (NBS) Kodak Model III mlcrodensitGaneter.

Standard instrument calibration procedures are employed. A step

tablet of the same material as that of the edge (and usually processed

with it) whose density values are determined on a macrodensitometer

measuring diffuse (visual) density is scanned in the

microdensitometer. The values of chart reading versus diffuse

(visual) density are then input on lines 900 through 915. Line 900

always contains the nunt)€r of pairs of points, while the succeeding

lines contain the point-pairs:

a) List chart reading and density, in that order, in pairs, in

increasing order. It is Inportant that both density and chart reading

be listed in increasing order; the program will not provide a correct

calibration table otherwise. See lines 910 through 91^ of the ACIMTF

listing for a specific example.

b) Do not interpolate visually on the chart recording to other

than one-half a scale division; i.e., a value of 15.3, say, cannot be

entered: it must be either 15.0 or 15.5. This is consistent with the

inherent accuracy of the acutance calculations and the density

calibration of the program, and will carry over to analysis of the

edge-trace record.

For the chart reading versus scanned distance, refer to Figure 1.

The following procedure is enployed in choosing points.

3
1) Determine the end-points first; these are the points vdiere

the slope of the trace goes to zero. Scrutinize the trace

carefully; the decision is criticsil. The end points should

be located exactly where the slope goes to zero, within the

restraints of the one-half scale division previously cited.

2) Select an arbitrary origin, away, from the curve on the

lower-density portion of the trace. Measure everything from

this point. Since the chart paper usually has divisions of

1/10-inch, it is convenient to use the paper itself for

measurement. The listing of the points, in Figure 1

illustrates this.

3) Choose as many points along the curve as is consistent with

its delineation, listing them (both chart reading and scanned

distance) to the nearest one-half scale division. Figure 1

Illustrates the points chosen and lists all those used. Use

as many as needed to characterize the trace accurately: but

do not use less than l8 not more than 38*. Do not take points

so close together that, because of rounding to the nearest

half-scale division, there are consecutive pairs having the

same value of Chart Reading (e.g., ...28.5,0.20,28.5,0.25,...).

TMs will lead to serious conputational problems in the subsequent acutance determination.

. So that the interpolating routine in the program has

sufficient information at the ends of the scale, include

points at either end one chart division away from the end

point, repeating the value of chart reading. These are

placed in lines 917 and 925 of the ACIMTF program listing for

errphasis, and must be included in the total nurri)er of pointpairs on line 916. Table I shows the listing that would

finally acconpany the data taken from Figure 1.

5) Determine the trace constant for the microdensitoneter; this

constant converts inches on the chart to micrometres on the

sanple, and is a function of scan speed and chart speed. The

constant can be found in the microdensitometer operating

manual for the various speeds used by the instrument. For

the trace shown in the Figure 1, that constant has a value of

3.048.

6) Enter edge-data in ACUMTF as follows:

a) Line 916 contains the nurber of pairs of points (chart

reading, scan distance) and the trace constant; Thus . .

. .916 Data 21,3.048 ... for the data of Table I.

b) Line 917 and subsequent contains the points (chart

reading, distance), in that order, in pairs, in

ascending (increasing) order.

*This is limited by the program array size, lines 015 and 016 of the

listing.
i

i

, 1

.

; ; 1 i i

' • !i i-iiiriLl

EDGE POINTS

Chart Distance

Reading (inches)

15.0 0,30

1S.5 A

ID.U A QA

17,0 A O C 0,95

19*0 1 1

A

1. 10

20*3 1 OA

22,3 1 OA 1.30

25.0 1 /.A 1.40

O O A 1 CA 1.50

31,5 I.oO

35.5 1 TA 1,70

/A A 40,0 1 QA l.oO

45,5 1 QA

50.5 2.00

53.0 2.10

56.5 2.25

57.0 2.30

58.0 2.45

58.5 2.70

j-.

,

11

1 t

I re1.

1

nti 4 i { !

I

i i [

i I

'

I

! 1

11

t-f1 -f

-i_ ]_-._ L. i

i -I

4 i

TIT

itl

Figure 1: Typical microdensitoraeter trace of an edge, showing the particular

points chosen for this edge. All data are listed to the nearest

one-half scale division, and are chosen (when possible) to be exact.
TABLE I

Complete List of Point-Pairs

for Edge-Trace in Figure 1

Chart Distance

Reading (Inches)

15.0 0.20

15.0 0.30

15.5 0.65

16.0 0.80

T '"7 r\ IJ.O 0.95

19.0 1.10

20.5 1 .20

22.5 1.30

25.0 1.^0

28.0 1.50

31.5 1.60

35.5 1.70

^40.0 1.80

^5.5 1.90

50.5 2.00

53.0 2.10

56.5 2.25

57.0 2.30

58.0 2.^5

58.5 2.70

58.5 2.80

6
Consult lines 916 through 925 of the ACUMTF listing for a specific example.

Program Synopsis

Once the data have been patched-in, the program carries out the

following operations in sequence: it first reads the data into the

program and prints it. This allows a visual check of the calibration

Information. The program then calculates a calibration look-up table,

but does not prlnt^ it. A spline-fitting technique Is used to

accorrplish this [2].

The edge-trace data are now read into the program, converting the

chart readings to density, through the look-up table previously

prepared, and the scanned distance fron Inches to micrometres. The

density values are converted to transmittance and the data are Inverted (in order of increasing distance and transmittance) In anticipation of eventual use in determining transfer function. The basic

edge-trace information is then printed out, together with the adjusted

edge-transmittance versus distance pairings

.

The acutance calculation follows this. First the program finds

the end points by searching for the points v^rtiere (aD/ax) = 0.005.

Since the data are digitized, there may not be a point that has that

exact value in the listing. Therefore, the program chooses the next

higher value at the low-density end of the trace and the next lower

value at the high-density end of the trace. To provide the user with

the value of the point that preceded the one used in the calculation,

it is printed to the right of the end-points in the listing of Figure

2. This manner of choice is entirely arbitrary, and may lead to a

value of acutance that is slightly higher than the "true" value. Once

the end-points have been chosen, the values of the slope are squared

and surmed. Acutance is then calculated. The values of Dt, and Pa are

printed out, respectively as D-MAX and D-MIN, with the values of the

slope at the end-points following (and identified) . The value of

acutance, rounded to three significant figures, is then printed. For

a complete print-out of a typical ACIMPF run, see Figure 2.

At this point, the user is given a choice. If he is interested in

continuing the calculations to transfer function, it is necessary to

transfer the pertinent edge-data (in terms of transmittance and

distance) to another program. ACIMTF prints the instructions for this

step, and asks the user to respond with a "1" if transfer function

calculation are required, and a "2" if not. Both printouts and

responses are shown in Appendix A, following the program listing. It

should be noted that the two outermost data nolnts, one on either side

of the edge-data corresponding to the list in Table I, are not put

Into the data file. Subsequently, the program notifies the user of

the data transfer and instructs him to run the program ETTTFER. No

other irput is required for that program to be executed. However, it

may not be executed without first running ACUMTF.

7
BASIC CALlfaKAU^vi DATA

CHAKT

KF.AbINO

.0

1 .0

10.5

17.0

25.5

41 .0

54. 5

65.0

72.5

79 .0

91.5

BASIC EDGL-ThACt DATA

CHART DlFi-USE SAMPLE ADJUSTED EDGE

READING DENSITY DISTANCE THANSM I T TANCE

15.0 . 52 .610 .000 .009700

15.0 . 52 .9 1 4 . 305 .009700

15.5 . 54 1 .98 1 1 .067 .0101 18

1 6.0 . 56 2.438 1 . 524 .011001

17.0 . 60 2.89 6 1 . 676 .011 465

19.0 . 67 3.353 2. 1 34 .015190

20. 5 . 72 3. 65^ 2. 438 .0 18 424

22. 5 . 79 3.9 62 2.7 43 .026887

25.0 .8 6 4.267 3.0 48 .041 1 63

28 .0 .96 4. 57 2 3.353 .059385

31 . 5 1 .08 4.877 3. 658 .082447

35.5 1 .23 5.182 3.9 62 . 108994

40.0 1 . 39 5. 48 6 4.267 . 1 36772

45. 5 1 . 57 5. 79 1 4. 572 . 1 63902

50.5 1 . 73 6.09 6 4.877 . 189787

53.0 1 .82 6. 40 1 5. 182 .2129 38

56. 5 I .9 A 6.8 58 5. 639 .251 189

57.0 1 .96 7.010 6.09 6 .274554

58 .0 1 .99 7 . 4 68 6. 553 .28 7 400

58 .5 2.01 8.230 7 . 620 .301012

58 .5 2.01 H . 534 7 .925 .301012

2. 01 HI GH-END sljpe - .00 50 .0041

• 52 Lau-END SL^PE = .0050 .0043

ACUTANCE = 51 600

DI H-USE

DENSl Tr

.00

• 04

.35

. 60

.88

1 . 42

I .87

2.26

2. 55

2. 78

3.20

Figure 2: Typical printout of ACUMTF.

8
Error Analysis:

The px)salble error In the calculation of acutance Is related

directly to the specification that data be read from the chart to the

r^arest 1/2-scale dlvlslcm. In the ordinate (density), the

microdensitoineter is adjusted to cover from 0 to 3.0 over 80 full

scale divisions, This gives a factor of 0.02 density units/half-scale

division. Vte vd.ll assume that the careful operator will make no more

than a one-quarter scale division error in reading, so that the

imxirnum error in density should be no more than 0.01.

In the abscissa (scan distance), we will use the slowest

mlcrodensitometer speed. This provides 3.0*48 micrometres an the

sanple per inch an the chart. The chart is marked in l/lO-irKsh scale

divisions. With this, on the sanple, we will have 0.15

micrcxnetres/half-scale divisiwi. Assuming the same quarter-scale

division reading error that we did for density, the maximum error in

scan distance (on the sairple) is estimated to be no more than 0.075

mlcrcmetres

.

Ihe program spline-fits and eicpanis the calibration and edge-data,

the latter to approximately 350 points. The basis of this fit is a 3rdHiegree polynomial and the transitions are smooth (the derivatives

must match at the ends of adjoining fitted segnents). We will

therefore assume there is no significant contribution to the error in

acutance frcsn the program except for that associated with the choice

of end-points previously dlscixssed. Because density and chart reading

can only be specified to three significant figures, information

derived from the calculatic»is of the programs considered in this note

will be printed to no greater than three significant figures.

Referring to the Input data (taken from the edge-trace record and

the density calibration data), we can show that the estimated relative

error in acutance is given approximately by

E(rel)

vhere N number of data points;

6 = measurement error in density (0.01);

K = measurement error in scan distance (0.075 um);

AD = average tabular density difference;

Ax average tabular scan distance difference (ym);

9
= maximum density for acutance calculation;

= minljmim density for acutarwe calculation.

For the data shown in Figure 2,

N - 19;

AD = 0.08;

AX « O.Ul;

« 2.01

= 0.52.

a

When these are inserted Into the above equation, we obtain

E(rel) = S%,

and the value of acutance is properly given as

Acutance » 51,600 + ^100.

These estimates of accuracy are consistent with this method of data

analysis in the time-sharing caiputer. The calculated error can be

reduced somewhat by using more data points, but to make a sl^iifleant

iirprovement in accuracy, it will be necessary to take data from the

microdensltc«Tieter on magnetic tape and subsequently process the

information in a more conprehensive program. It should also be noted

that the expression for relative error is only approximate: the error

changes inversely as a function of acutance. As calculated above, it

represents maximum relative error. Since the data for subsequent

programs documented in this note depend on this calculation, the same

accuracy can be ascribed to their results. As a general guide, based

on these considerations and experience with the procedure at NBS, the

relative error in acutance (for the techniques outlined here) can be

taken to be not less than 5% nor greater than 10^.

EMTFER

The program EMTFER calculates the optical transfer function of the

microdensitcmeter frcsn analysis of the edfc2-trace record, on the

assunptlon that the edge quality is sufficiently hl^ to warrant no

10
corresponding correction to the trace-data*. When the edge Is moved

throu^ the optical axis of the Instrument (assuming a slit has been

adjusted parallel to the edge and that the adjustment of all optics

and related mechanical fixtures has been optimized), the

Illuminance falling on the photodetector will be given by

where E(x') is the edge-object radiance and f(x') is the inpulse

response of the optical system. In practice, the photometer output is

converted to chart reading. In turn, this is converted to density and

then transmittance (the equivalent of illuminance in this context)

through the preceding program, ACIMTF. To sinpllfy the presentation,

we will retain the identity of the edge throu^ use of E(x') and

bypass the chart reading-density-trananittarKje procedure.

Because the edge is the signum function, i.e.,

Kx) « E(x - x')f(x') dx', (2)

E(x') = sgn(x'),

(0 < x')

(3)

(0 > x')

we can rewrite Eq. (2) as

X

Kx) f(x') dx'.

11
When we differentiate both sides of this equation, we obtain

f(x) (5)

arxi we have thus derived the lnpilse response of the optical system.

Since the Pairler Transform of the Inpulse response Is the transfer

function, we will have

and the Fourier Transform of the differentiated edge-linage

distribution Is the optical transfer function.

This Is clearly an Idealization. For relatively noise-free edges

such as those produced at NBS, no allowances need be made for the

noise contributed by the grain In the enulslon of the photografAilc

process. I.e., no smoothing of the edge-data Is required. On the

other hand, when edge-gradient analysis Is used to obtain MTF Vrcxn

noisy data, large errors can result unless the data are smoothed

(filtered): there can be little confidence in the results. Because of

this, edge-gradient analysis is (generally) not a particularly

accurate technique. Even allowing for a certain amount of smoothing,

the procedure suffers from the fact that because the spectrum of an

edge falls off as the reciprocal of spjatial frequency, the data in

those regions of particular interest (the high-frequency portion of

the curve) are produced with a low signal-toHiolse ratio. There are

still other considerations that mitigate against the accuracy and

precision of this method. However, the technique is easily

ijiplQuented and results can be interpreted with little ambiguity. In

many cases, it is the only available technique. But the user should

not assign undue confidence to the results; 10% RMS error in transfer

function is often about the best that can be achieved; with experience

and increased technical skill in carrying out the measurements, this

can sometimes be reduced to 5i» Nothing better than this Is warranted

ard should not be expected.

The program EWTPEH embodies the operations described by Eqs. (2)

through (6). Because the differentiation of the edge produces the

impulse response with values of zero on either side, a direct Fourier

transformation can be carried out. For reasons of accuracy, the

numerical integration was Inplemented throu^ Weddle's Rule [33.

f(x)

(6)

12
Weddle's Rule requires that there be N • + 1 data points In the

calculation, where M is an Integjer chosen large enou^ for accuracy

and snail enou^ to keep the available arrays within bounds. In

keeping with the limitations of the size of BASIC programs, a value of

33 was chosen for M, which thereby gave 199 for N, and an array of 200

values Is used for the edge analyzed In the program. The given edge

Information Is expanded by Interpolation throu^ a spllne-fltting

technique [2] and occupies the full 200-eleiTient array. Subsequently,

because the spllne-flt coefficients are available, the derivative Is

calculated on the basis of the algorlthn.

Data Input to EWTFER:

The Input for EMTFER comes from ACIMTF. It Is left in a file

within the cOTputer, frc^n which WfTFER draws, it. EMTFER cannot be

executed unless ACIMTF Is first run. A conplete listing of EMTFER Is

shown In Appendix B.

Program Synopsis:

Once the data file has been provided, the program carries out the

following operations. Before processing the data, the program asks

the user if a plot of the WTF is required. If the respome is

affiniBtive, a data file is set up inmediately and filled during the

ensuing calculations. This is a necessary because EWTFEK uses nearly

all of the available space in the conputer and another array cannot be

set up.

The program then reads the data and prints it (a patch-routine is

subsequently provided that pemlts skipping the printing: see Appendix

B, following the listing). This allcws a check on the input data (it

should agree with the edge-list printed by AClfFTF) . The edge data are

next expanded into the 200-element array and the derivative

calculated. Following this, the array is set up for integration by

Weddle's Rule and the array surmed: this is the area under the

ijipulse response and it is used for nonnallzing the transfer function.

The Fourier transform of the edge distribution is next calculated.

Hie cosine and sine transforms are calculated separately so that the

modulus and phase of the optical transfer functlCMi can be detemrLned.

As the calculation is made, the results are printed, frequency by

frequency, and the data file is filled. The print-out is based on

increments of 10 cyclesAm. this value is arbitrary, and is contained

in Une l85 of the listing;

185 P - 10 .

13
It can be changed by patching-ln the desired value prior to execution

of the program*.

The print-out (and calculation) Is stopped arbitrarily at an MTP

value of 0.0^. This threshold value can be changed If desired. The

appropriate line In EMTFER reads:

216 IP (S3 - 0.0^1), 302, 302, 220 .

If a higher or lower threshold Is required, re-wrlte the line with the

desired value substituted for 0.0^.

When a plot is required (and has been indicated prior to carrying

out the calculations), a data file will have been set up for the

program MTFPLT and after the conpletlon of the transfer function

calculations the caiputer will notify the user that MTFPLT should next

be run. Typical print-out of these instructions and their responses

are shown in Appendix B, following the program listing.

The print-out of EWTFER is in two parts. The first lists the edge

information, following the questlai/answer about plotting. This is

shown is Figure 3. The second Is the listing of the MTP, and is shown

in Figure ^.

MTFPLT

The program NfPFPLT plots the modulation transfer function (MTP)

calculated by the program ETfrraR throu^ edge-gradient analysis. It

is specifically tailored for this single purpose, and assumes the 10

cycle/nm increment in spatial frequency used by EMTFER in its

calculations. NETFPLT derives its input data only from EMTF^H.

Program Synopsis:

The program reads the data from the file set up by EMTFER. The

fundamental plotting increment alOTg the ordinate scale is 0.04. Hie

data are then tested against this Increment, sorted accordingly, and

*The user is cautioned that the roitlne for plotting the MYF assumes

this value of spatial frequency as an increment. IfTPFLT must be

modified accordingly, if line I85 is changed and a plot is subsequently desired.

14
7BASIC EMTFER

RUN

IF A PLOT 0F THE MTF IS DESIRED* TYPE 1 AFTER ! 0THERWISE* TYPE 2.

! 1

BASIC EDGE- DATA

TRACE DISTANCE TRANSM I TTANCE

(MICR0METERS)

.000 .009700

.7 62 .0101 18

1.219 .01 1001

1 .372 .01 1465

1 .829 .01 5190

2. 1 34 .018424

2.438 .026887

2. 7 43 .041 1 63

3.048 . 0 59 38 5

3.353 .082447

3. 658 .108994

3.9 62 .136772

4.267 . 1 63902

4.572 . 189787

4.877 .2129 38

5.334 .251 189

5.791 .274554

6.248 .287400

7.315 .301012

Figure 3: Typical edge-information printout of

EMTFER, showing the initial program

instruction for subsequent plotting

of MTF.

15
THANSFEK J-UNCTldN

FKEQ.

0 1 .000 .000

10 .997 .264

20 .989 .527

30 .976 .79 1 40 .957 1 .054

50 .934 1.318

60 .906 - 1 .560

70 .874 - 1 .297

80 .839 - 1 .034

90 .8 00 - . 77 1 100 . 7 59 - . 509

110 .715 - .247

1 20 . 670 .015

1 30 . 624 .276

1 40 .577 • 536

1 bO . 531 .79 6

1 60 . 48 5 1 .054

1 70 . 439 1.312

180 .39 6 1 . 568

190 .353 - 1 .320

200 .313 - 1 .068

210 .275 -.819

220 .240 -.573

230 .206 -.331

240 .176 - .094

2 50 . 1 48 . 135

2 60 . 1 23 .357

270 .101 • 566

280 .08 1 .760

290 .0 63 .929

300 .0 49 1 .062

310 .036 1 . 135

Figure 4: Typical printout of EMTFER.

16
rounded to the nearest 0.04. The graph ajces and points are then

printed together, starting with the topmost ordinate value and working

down to the x-axis. Increments on the x-axis are 10 cycles/mn.

The program is presently limited to positive values of MTF; only

one curve can be plotted. Multiple-valued functions (such as those

produced by a central obstruction in the aperture) will not plot

correctly with the present sorting algorithm.

A typical print-out from this program is shown in Figure 5.

17
MaOULATItaN TkANSfEK FUNCTI>aN

1 .0

"

,

' .8 - *

.6 -

' : :

, * .4 - *

.2 - ** »

t » f f t -t f f f f t 0 100 200 300 400 bOO

SPATIAL FHEOUENCr (CYCLES/MM)

Figure 5: Typical printout of HTFPLT.

18
FEFERENCE:

[1] C.E.K. Mees and T.H. James, The Theory of the Photographic Process , 3rd Ed. (New York, The MacMlllan CompauTy, 1966), p. 511.

[2] R. H. Pennington, Introductory Ccnputer Methods and Numerical

Analysis

,

2nd Ed. {The MacMlllan Company, Collier MacMlllan

Canada, Ltd, Toronto, Ontario, 1970), pp. 14^5-^5^.

[3] J. B. Scarborough, Numerical Mathematical Analysis , 2nd Ed. (The

Johns Hopkins Press, Baltimore, Md., 1950), pp. 133-137, l80.

19
APPENDIX A

ACIMTP - A Program for Calculation of Acutance

20
001 KICHAKD E. SWING* 232. 0H# X2lb9# »-Ke)GrtAM: ACUMTI0 0?

0U3 rnili t'K>H.KAM (JALCUU A I Kli AClMA >JLh >• H IHK I (vACK Ah Ai\

004 RDGF Hr A M 1 C KvJ UF.Mb I TklM Kl th A,«^U h-Ktr-AKLS L»A1A l-kJK lib

005 EV/fNTUAL USE IiM CALCULATING ThAi>JSI-tk hUNCTl^N THKkiUGH

OOf * THE PR0GRAiVl CALLED E>>1THEH.

007

01b Dl{^ X( 40) # r ( 40) * U( 40) #P( 40) # E( i^O) # C( 4» 40) # A( 40* 4)

016 DiPl B( 40) *Z ( 40) . K( 40) # K 40) » T( 40) # V( 40)

017 DIM G(350)#H(350)*L(3bO)#h( 3b0)

018

020 01 = 1 021 J = 1 TvI 5

022 PKINT

023 NEXT J

024 KEAD M

025 G'A Td 270

026 f'AH I = 1 T^ M 'INPUT DENSITr CALlbKAIlJN DATA'

027 READ X( I )»YCI ) 028 PRINT* 029#X< I ) # IfC I ) 029 F.^iT X21* F3. 1#X4, K8.2

030 NEXT I 032 Ml = M-1 'CALCULATE H T-CkJEt- !• I CI EN IS ' 0 34 hidH K=l Tii Ml

03f D(K) = X(K+1)-X<K)

038 P(K) = D(K)/6

040 E(K) = (r (K* 1 )-Y(K) )/D(K)

042 NEXT K

044 i-i^H K = 2 T«l Ml

046 B(K) = E(K)-E(K- 1

)

0 48 NEXT K

050 A<1,2) = -1.0 - D(l)/D(2)

052 A( 1 , 3) = D( 1 ) /D(?)

054 A(2.3) = P(2)-P( 1 )*A< 1,3)

056 A(2*2) = 2.0*(P( 1 )+P(2) )-P( 1 )*AC 1#2)

058 A(2#3) = A(2# 3) /A(2, 2)

060 BC2) = 8(2)/A(2#2)

062 f^H K = 3 T^^ Ml

064 A(K.2) = 2*<P(K- 1 )+P(K) )-P(K- 1 )«A(K- 1 . 3)

066 B(K) = B(K ) -P<K- 1 )*B(K- 1

)

06rJ A(K»3) = P(K)/A(K,2)

070 B(K) = B(K)/A(K*1^)

072 NEX r K

074 U = U<M-2)/D(M- 1

)

076 A(M,1) = 1 (J A(M-2.3)

0 78 A(M»2) = -Q-A(M,l)<'A(M-l#3)

080 R(M) = B(M-2) -A(M, I )*B(M- 1

)

082 2<M) = b< V)) /A(M.

08 4 M2 = M-2

086 f-^K I = 1 Tv^ M2

088 K = M - 1 090 Z(K) = B(K)-A(K, 3)*Z (K+ 1

)

092 NEXT I 094Z(1J = -A<1,2)*Z(2) - A(1,3)*Z(3)

21
0)f h^K K = 1 TJ Ml

0 H U = 1 / ( f>* IJ ( K ) )

1 00 C( 1 # K ) = Z (K )*G)

1 02 C( 2» K ) = Z (K+ 1 ) »0

104 C(3*K) = (T'(K)/D(K) )-<Z<K)*P(K) ) 106 C(4,K) = ( r (K* 1 )/D(K > ) - (Z (K+ 1 )*P(K )

)

108 iViFXT K

109 yi = 2 (vj Tk3 no B = X((^)/<0.S0> •OE.NJEKATE l^^DlfENUF.NT vAhlABLE V/ALUtS'

1 1 4 H^K J = 1 T') B

1 1 5 I f- Ql = 2 T-) 1 IH

I 1 f G ( J ) = X ( 1 ) ( J - 1 ) ( 0 . bO )

1 1 7 G J 1 22

118 GCJ) = ( J - 1 )*( 1 />17)

122 IK ( G( J ) -X< 1 ) ) , I 46, 1 24, 1 28 'GE^N^EkATE DEPEiMDE.nJT VAKIABlE*

1 24 H(J ) = Y( 1

)

1 26 GJ 1 47

1 28 K = 1 130 If- (G<J)-X(K> 1 ) ), 1 40, 132, 136

1 32 r^( J ) s ^(K* 1 )

1 34 Ga 1 47

1 36 K = K*\

138 IF (G(J)-X(M) ), 130, 146, 146

140 H(J) = (X(K* 1 )-G( J ) )*(C( 1 ,K )( (X(K> 1 ) -G( J ) )*»2) CC 3,K)

)

142 H(J) = H( J )( G( J ) -X(K ) )( C( 2, K )( ( G< J )-X<K ) )**2)+C( 4,K)

)

1 43 G0 Tv) 1 47

1 46 H( J ) = Y((>1)

1 47 MEX T J

148 IF Ql=2 Gd Tk) 230

1 49 GvJ 290

1 50 PRI NiT '

'

1 54 PHI NT, 156

156 f-.«1T X8, ••CHAKT",X 6, "DI FHJSE",X 7, ••SA>»PLE",X9, "AUJUSTED EDGE"

1 58 PRINT, 1 60

1 60 FMT X7, "KEADING",X 5, "DENSl TlT", X 6, "UI STANCE", X 8 , "TkANS(*1 I TTANCE'

161 PRINT

1 62 READ M2,N

1 63 Wl = M2

1 66 F0R J = 1 Tk3 M2

168 READ K(J),KJ) 'INPUT EUGE-TKACE DATA*

170 If- (K(J)-G< 1 ) ), 172, 172, 176 'CJNVEKT Td UENSlTf'

1 72 L(J ) = H( 1 ) 174 G^ T<) 188

1 76 K = 1 178 IF (K(J)-G(K+ 1 ) ), 180, 180, 184

180 L( J) = H<K+ 1 ) 182 G3 T ) 188

184 II- ('<(J)-G(K-»- 1 ) ) < 0.00001 T4EN IrtO 185 K = K*l

186 G^3 T) 1 78

188 NEXT J

189 F0R J = 1 T0 .>^2 190 T(J) = 10**( -L(M2+ 1 -J )

)

22
194 PRI.>JT*200*K<J)*L(J)#N«KJ)* V( J>#T<J)

200 FMT X5* F8 . 1 *X4* F8 .2*X5* .3#Xb* F8 .3»X3* Fa . 6

202 NEXT J

210 Ql s 2

214 F0R J = 1 T0 M2

216 X(J) = N*(F(J>-F( I )

)

218 Y(J) = L(J)

219 iMEXT J

220 M s M2

221 Ga 032

222 M6 = INTC 1*X(M) ) 223 M7 a INK 350/M6)

224 B = Mf*M7

228 G0 TvJ 1 1

230 F0R K = 1 T0 (B-1)

232 R<K) = <M7)*(H(K* 1 ) -H<K ) ) 'COMPUTE ( DELTA- D) /( DELTA-X )

234 NEXT K

236 K = 1 238 IF <R((B/4)-K)-0.00b0)#239#24l*244 'LkJW-END CUTOFF TEST*

239 M4 = <B/4)-K

240 G0 T0 248

241 M4 * (B/4)-K- 1 242 G0 T0 248

244 K = K*l

246 G0 T0 238

248 K = 1 250 IF <R(B-<B/4)*K)-0.0050)# 251. 253*256 'HIGM-ENU CUT3FF TEST*

251 M5 « <B/4)-K*l

2 52 G0 T0 2 60

253 M5 = (B/4)-K

254 G0 T53 260

256 K s K+1

2 58 G0 T0 250

260 P9 = H<B-rt5)-H<(«l4)

266 S = 0

2 68 G0 T0 29 6

270 PRINT BASIC CALIBRATION DATA"

272 PRINT

274 PRINT#276

276 FMT X24*"CHART"»X6#"DIFFUSE"

278 PRINT*280

280 FMT X23#"READING"*X5* "DENSITr"

286 PRINT

288 G0 T0 026

290 PRINT

291 PRINT

292 PRINT BASIC EDGE-TRACE DATA"

294 G0 Tt3 1 50

296 F0R J s M4 T0 (B-Mb)

298 S = S <R(J>)»2 'SUrt 01- SQUARED-SL0PE VALUES'

300 NEXT J

23
301 G2 = ( 10* 6)*S/( B-M5-M4)

302 A = G8/P9 'CALCULATE ACUTAiXCE.'

3 03 fi*^ 310

304 HKI NT* 305.

305 FMT "ACUTANCE = ">17

30 6 E0R J = I 1^ 15

307 PHINT

308 NILKT J

309 Gt3 TJ 325

310 PHI.MT

312 PRINT* 31 4# HCB-M5) # K( B-M5) # R( B-M5* 1

)

314 FMT "D-MAX = "* F8 . 2* X 4. "H i GH - END SLidPE = "* F8 . 4* X8# F8 . 4

316 PRINT*318#H(M4)#K<M4)#R<M4-1)

318 FMT "D-MIN = "* FH . 2* X 4# "L - END SL3PE = "* F8 . 4# X8* F8 .

320 PRINT

322 G0 T0 370

325 PRINT

326 PRINT

327 PRINT "IF MTK CALCULATIONS AkE TO FOLLOW* TrpE I AFTER ! 328 PRINT "OTHERWISE* TYPE 2* AND THE RUN WILL TERMINATE."

331 INPUT A

333 I F A = 1 GO TO 338

334 I F A = 2 GO TO 999

33 6 PRINT

337 GO TO 325

338 FILES* DATAC

3 39 FOR J = 2 TO Wl

340 WRITE #2* ( V( J)-V< 2) ) * T( J)

341 NEXT J

3 42 PRINT

343 PRINT "AN EDGE-DATA FILE HAS BEEN SET UPl NOW RUN THE"

344 PRINT "PROGRAM EMTFER TO OBTAIN THE TRANSFER FUNCTION."

346 PRINT

347 GO TO 999

370 IF A => 100000 G>1 TO 382

371 IF A => 10000 GO TO 378

37 4 A = INT ( (A* 5.0)/ 10)* 10

37 6 GO TO 38 4

378 A = INT< < A+50 .0) / 100) 100

380 GO T.) 38 4

382 A = INT ( (A<-500.0)/ 1000)* 1000

38 4 GO T-^ 304

899 * DATA SFCTION

900 DATA 1 1 910 DATA 0*0*1.0.0.04,10.5*0.345*17.0*0.60*25.5*0.88

912 DATA 41.0*1.42,5^.5.1.^7,65.0*2.26

914 DATA 72.5*2.55*79.0*2.78*91.5*3.20

9 1 6 DATA 21 * 3.048

917 DATA 15.0*0.20

918 DATA 15.0*0.30,15.5,0.65*16.0*0.80*17.0*0.95*19.0*1.10

920 DATA 20.5,1.20,22.5,1.30,25.0*1.40*28.0*1.50,31.5.1.60

922 DATA 3 5.5*1.70*40.0,1.80*45.5*1.90*50.5,2.00,53.0,2.10

924 DATA 56.5,2.25.57.0.2.30,58.0*2.45,58.5,2.70

925 DATA 58.5*2.80

999 END

2H
At the end of the Acutance calculation, the program spaces enough lines

to provide paper for trinming to an 11-inch length and then asks the user to

choose between two options. One of these is to proceed to the calculation of

Transfer Function. The following is a printout of this, together with the

affirmative response:

IF MTF CALCULATIV3MS AKE Tk» F\3LLk3W* TYPE 1 AFTEK !.

0THERWISE* TYPE 2* AND THE KUN WILL TEKMlNATE.

! 1 AN EDGE-DATA FILE HAS BEE>» SET UPl NJW KUN THE

PROGRAM EMTFER TkJ 0BTAIN THE TRANSFER FUNCTION.

999 EXIT

7BASIC EMTFER

The second option is the termination of the run without further calculation.

The following is a printout of the alternate response to the program options.

IF MTF CALCULATI0NS ARE T0 FaLL0W* TYPE 1 AFTER !.

0THERWISE« TYPE 2» AND THE RUN WILL TERMINATE*

12

999 EXIT

?

25
' ACUMTF has been designed to be used at NBS for calibration of high-quality

edges. The rounding algorithm therefore does not extend to values of acutance

less than 1000 (lines 370 through 384), For lower quality edges, this program

should not be used. As a means of assessing this, examination of the listing

of sample distance in the ADJUSTED EDGE TRANSMITTANCE column of Figure 2 will

provide a useful criterion. If the final distance value is less than 15, the

edge may be considered of sufficiently high quality to warrant further use of

the program, A value larger than this will require program modifications which

will not be discussed here.

26
1

I

APPeiDIX B

EMTFER - A Program for Calculation of Transfer Function

27
001 HICHAKD E. SW I NG# 232 . 08 # X 2 I b9 * PH0GKAM » EMTFEK

002

003 THIS PROGRAM CALCULATES TKANSKEK hUN,CTI(dN f- KdM AN EDGE004 * TRACE* THE DATA MR WHICH IS DERIVED FR^M THE PRkJGRAM

005 * CALLED ACUMTF. EMTFER CANN3T BE EXECUTED WlTHidUT FIRST

006 RUNNING ACUMTF. EMTFER ALS^ SUPPLIES THE NECESSARY

007 DATA T0 THE PReJGRAM MTFPLT FiJR THE PLOTTING MTF.

008 * on DIM F(200)*L(200)

012 DIM X(40)*Y(40)#D<40)#P<40)»E<40)#C(4#40)*A(40#4)

013 DIM B<40)»Z(40)*G(200)#H(200)

015 * 01 6 PRINT

017 Ql = 1 018 G0 T0 308

019 Ga T0 2 66

020 FILES* DATAC* DATAB

021 K = 0

022 READ 2*X(K-»-l )*Y<K*1)

023 IF END #2 THEN 030

026 PRINT#027*X(K+l)«r(K*l)

027 FMT X 1 5# F8 .3*X 1 1 > F8 .

028 K = K 1 029 G0 T0 022

0 30 M = K , 031 PRINT

032 Ml = M-! 'CALCULATE F I T- CkJEF F I C I EN TS ' 034 F0R K=l T0 Ml

036 DCK) = X(K+1)-X(K)

038 P(K) = D<K)/6

040 E(K) a (Y(K* 1 )-Y(K) )/D<K>

042 NEXT K

044 F0R K s 2 T0 M

046 B(K) s E(K)-E(K-1)

0 48 NEXT K

050 A<1*2) = -1.0 - UC1)/D<2)

052 A( 1 * 3) = D( 1 )/D(2)

054 A(2i.3) = P(2)-P( 1 )*A( 1# 3)

056 A<2,2) = 2.0*(P( 1 )+P(2) )-P( 1 )«A( 1#2)

058 A(2*3) = A( 2* 3)/A(2# 2)

060 8(2) = B(2)/A(2*i^)

062 F0h K = 3 T0 Ml

064 A(Ki.2) = 2*(P(K- 1 )*P(K) )-P(K- 1 )*A(K- 1# 3)

066 B(K) s B(K) -P(K- 1 )*B(K- 1

)

068 A(K,3) = P(K)/A(K,2)

070 B<K) = B(K)/A(K*2)

072 NEXT K

074 Q = D(M-2)/D(M- 1

)

076 A(M>1) = 1 Q + A(M-2*3)

078 A(M,2) = -Q-A(M# 1 )4fA(M- 1, 3)

080 B(M) = B(M-2) -A(>1* 1 )*B(M- 1 ) 082 Z(M) = B(M) /A(M, J^) 084 M2 = M-2

28
086 F0R I = 1 T0 M2

0H8 K = M - I 090 Z<K) m B(K)-A(K« 3)4<Z(K4^ 1 ) 092 NEXT I 094 ZCl) = -A<1*2)*Z(2) - A(l«3)4iZ(3>

09 6 F0R K s 1 T0 Ml

098 Q = 1/<6*D(K))

100 C( 1 #K) = Z(K)*Q

102 C(2>K) = Z(K*1)*Q

104 C(3*K) = <Y<K)/D<K) )-(Z<K)*P<K)

)

106 C(4*K) = <Y(K* 1 >/D<K) )-(ZCK* 1 )*P<K)

)

108 NEXT K

110 B = 200 'CALCULATE EDGE- DERI VATI VE

1 12 F0R J = 1 T0 B

114 G(J) = (J- 1 )*(X(M)-X< 1 > )/B

116 IF (G(J)-X( 1 ) )* 1 18# 1 18* 122

1 18 HC J) = 0

120 G0 T0 136

122 K = 1 124 IF (G(J)-X(K-»' 1 ) )* 126* 126* 132

126 H(J) = -3*C( 1#K)*(X<K*1 )-G< J) )**2*3*C(2#K)*<G(J)-X(K) )**2

128 H(J) s H(J)-C(3*K)*C< 4*K)

130 G0 T0 136

132 K = K+1

134 IF ( G( J)-X(M> )* 124* 1 18* 1 18

136 NEXT J

140 F3R J = 1*199*2 'SET UP ARRAY fJR WEDDL E- I NTEGRATI 0N

142 H(J) = H(J)*1

1 44 NEXT J

1 46 F0R J = 7* 193* 6 • 148 H<J) = H(J)*2

1 50 N EX T J

1 52 F0R J = 2* 194* 6

1 54 H( J) = H( J)*5

156 NEXT J

1 58 F0R J * 6* 198* 6

1 60 K< J) * H( J)*5

1 62 NEXT J

1 64 F0R J = 4* 19 6* 6

1 66 HCJ) = H<J)*6

1 68 NEXT J

170 S = 0

171 D ' (0.30)*(X(M)-X( 1 ) >/B

172 F0R J = 1 T0 199

174 S = S*H<J)*D 'AREA UNDER SPREAD FUNCTION*

1 7 6 NEXT J

177 F0R J = 1 T0 15

178 PRINT

179 NEXT J

180 G0 T0 290

182 K s 0

18 4 F0R J = 1 T0 199

185 F s 10

186 F(J) = C0S( < 6.28318)*K*F*(0.001 )*G( J)

)

188 L<J) s SINC ( 6.28318)*K*F*<0.001 )*G<J)

)

29
190 MJ) = F(J)*H(J)

192 LCJ) = L(J)*H(J)

194 NEXT J

196 SI = 0

19H S2 s 0

200 i-'^H J = 1 199

202 SI = S1*F(J)*D 'COSINE ThANSMKM'

204 S2 = S2 + L(J)*D 'SIiXE TKAMSF^KM*

20 6 NEXT J

208 S3 = ( 1/S)*S(JK( CSl )t2 (S2)t2) 'WdDULUS (MTI-)'

209 S4 = ATN( (S2)/(S1) ) 'PHASE (PTI-) ' 210 HHINT*21 l#K*F,S3*S4

211 FMT X17* I4#X6> F8.3»X3#F8.3

212 IF Ql = 2 T^ 216

213 WHITE *3#S3

216 IF (S3-0.04). 302, 302#21

217 I ^ Ql = 2 G.l T^ 220

218 IF K*10 = 500 GJ Te) 302

220 K = K*\

222 G0 T0 184

2 66 F0H J = 1 T'J 1 5

268 PRINT

2 69 NEXT J

270 HHINT . BASIC EDGE-DATA"

2 72 PRINT

274 PRINT, 276

276 t-MT X lb, "TRACE DI STANCE"# X 4* "TRANSM I TTANCE"

278 PRINT, 280

280 f-MT X 1 b, "(MICROMETERS)"

286 PRINT

288 GiJ T0 020

290 VRINT

292 PRINT

293 PRINT " TRANSFER FUNCTION"

294 PRINT

296 PRINT, 298

298 f-MT X 18, "FRE0.",X7, "MTF",X7, "PHASE"

299 PRINT

300 G0 T0 182

302 F0R J = 1 T0 15

304 PRINT

30 6 NEXT J

307 G0 T0 318

308 PRINT "IF A PL0T 0 F THE MTF IS DESIRED, TtPE I AFTER

310 PRINT "0THERWISE, TfPE 2."

31 1 INPUT C

312 IF C = 1 G0 T0 019

31 3 I F C = 2 G0 T0 31

314 G0 T0 308

315 Ql = 2

31 6 G0 T0 019

318 IF Ul = 2 G0 T0 999

319 PRINT "AN MTF DATA FILE HAS bEE^* SET UPl N0W RUN THE

320 PRINT "PR0GRAM MTFPLT T0 08TA1N A PL01."

322 PRINT

324 PRINT

999 END

30
Prior to the transfer function calculation, the program asks the user to decide about a plot of the MTF:

IK A PL0T THE MTI- IS DESIKtU* Tt^'t I AULk ! OTHERWISE* TYPE 2.

Should the user respond with a "2", the calculation will be

terminated after the printing of the transfer function. When the

response is a "1", a data file is» prepared during calculation for use with the subsequent plotting program. The user is notified when

the file is ready by the following statement:

AN MTF DATA FILE HAS BEE,M SET UP) NJW HUN THE

PR0GRAM MTFPLT T0 v38TAIN A PL^dT.

999 EXIT

The user now executes the program MTFPLT to obtain the plot.

When EMTFER obtains the edge information from the file set up

by ACUMTF, it prints-ouc a list. This can th^be checked with the

listing in the print-out of ACUMTF. It is not always necessary to

list this information and there is a patch-routine to suppress the

printing. It is as follows:

? PATCH EMTFER

BEGIN

026

027

266 PRINT

268

269

270

272

274

276

278 i 280

286

? BASIC EMTFER

31
APPENDIX C

fOTPLT - A Program for Plotting Transfer Function

32
001 * RICHARD E. SWING* 232.08* X21b9* PRidGRAMt MTFPLT

002 * 003 THIS PRviGRAM PLi3TS THE rtaOULATIkJN TRANSFER FUNCT10N

004 PR0DUCED BY THE PR0GRAM CALLED EMTFER. IT IS THE THIRD

005 IN THE SEQUENCE. . .ACUMTF-EMTFER-MTFPLT. .AND CANN0T

006 * BE EXECUTED WITH0UT THE DATA PR0DUCED BV THE 0THER TW0

007 * PR0GRAMS.

008

016 DIM V(30)* A(30)#M( 50)

018 PRINT

020 FILES* * DATAB

030 K a 0

040 READ #3*M<K)

050 IF END #3 THEN 080

060 K a K*l

070 60 T0 040

080 M = K°l

082 PRINT

087 PRINT

090 F0R J a 0 T0 25

100 V(J> « 0

1 10 A(J) « 0

120 NEXT J

130 F0R J s 0 T0 M

140 K s 0

150 IF ((25-K)*0.04-MCJ))* 160# 160* 190

160 V<K) « 1 170 A<K) « A(K>*1

180 60 T0 250

190 IF C (25-K)i»0.04-M<J>> < 0.0400 60 10 220

200 K K*l

210 60 T0 150

220 IF ( C25-K)4i0.04-M(J) ) <> 0.0200 60 T0 160

230 VCK+1) a 1 235 A<K*1 ) s A(K*1)*1

250 NEXT J

275 F0R J » 1 T0 15

280 PRINT

285 NEXT J

290 PRINT* 295

295 FMT X24*"M0DULAT10N TRANSFER FUNCT10N"

300 PRINT

305 PRINT

310 PRINT

31 1 F0R J s 1 T0 2

312 PRINT "J

313 PRINT

314 NEXT J

315 F0R J » 0 T0 24

320 PRINT "I

325 IF J s 0 60 T0 360

330 IF <(25-J)*4/5) a I NT< ( 25-J ) 4/ 5) THEN 350

335 PRINT "J

340 PRINT

345 60 T0 390

350 PRINT <25-J)*<0.04)

355 60 T0 380
360 PRINT "I

365 PRINT .0 "t

370 PRINT

375 G0 T0 390

380 PRINT "I

385 PRINT

390 IF V<J) = 0 G0 T0 39 6

39 5 60SUB 600

39 6 PRINT

400 NEXT J

420 PRINT *'t 425 F0R J = ! T0 55

435 IF (J/5) « INT(J/5) THEN 460

440 PRINT "-"I

445 G0 T0 4 65

460 PRINT "fj

465 NEXT J

470 F0R J = 0* 10* 2

475 I F J > 0 G0 T0 49 5

480 PRINT "J J J 48 5 G0 T0 515

495 PRINT " "J < 50)*JJ

500 G0 T0 515

515 NEXT J

520 PRINT

522 PRINT ' 525 PRINT* 530

530 FMT X24* "SPATIAL FREQUENCY (CYCLES/MM)*'

535 PRINT

536 G0 T0 705 vl^S j/-:"^ i.^.j.Q

600 S s 0

605 I F J s 0 G0 T0 68 5

606 IF J s 1 G0 T0 632 i.:--^ -yc^O.^- - 610 F0R K a 0 T0 J-1

620 S s S*A<K)

630 NEXT K

631 G0 T0 640

632 S « ACO)

640 F0R K « 0 T0 S-2

650 PRINT

660 NEXT K

670 F0R K a 1 T0 A<J)

680 PRINT

682 NEXT K

68 3 G0 T0 700

68 5 F0R K * 1 T0 A<J)-1

68 6 PRINT "^"t

688 NEXT K

700 RETURN

705 F0R J = 1 T0 20

710 PRINT

715 NEXT J

999 END

34 USCOMM-NBS -DC
I NBS'n4A («Ev. 7-73)

U.S. DEPT. OF COMM. PI HI.K ATION OR RKPOKT NO. 2. Gov't Accession

BIBLIOGRAPHIC DATA No. 5HEET jjBSIR 7cv.6qq

3. Recipient's Accession No.

4. TITLE AND SUBTITLE

T«E CALIBRATION OF PHOTOGRAPHIC EDGES AT MBS

5. Publication Date April 1975

6. Performing Organization Code

7. AUTHOR(S) ^ J o ^ Richard E. Swing

8. Performing Organ. Report No.

9. PERFORMING ORGANIZATION NAME AND ADDRESS

NATIONAL BUREAU OF STANDARDS

DEPARTMENT OF COMMERCE

WASHINGTON, D.C. 20234

10. Project/Task/Work Unit No. 2^20187

11. Contract /Grant No.

12. Sponsoring Organization Name and (Complete Address (Street, City, State, ZIP)

Same as No, 9.

13. Type of Report & Period Covered

Interim Report

14. Sponsoring Agency Code

15. SUPPLEMENTARY NOTES

16. ABSTRA(!T (A 200-word or leaa factual aummarY ol moat si^tificant information. If document includes a sigftificant

bibliography or literature survey, mention it here.)

The method by vrtiich photographic edges made at NBS are calibrated is presented

and discussed in some detail. The programs associated vd.th the corputational

.aspects of the analysis are listed, covered in narrative form, and their limitations

and options are presented. Hie possible use of these edges to determine microdensltometer transfer function is discussed and limitations and relative error of

all the calculations and procedures are covered in detail. Program listings are

' in BASIC language

.

17. KEY WORDS (aix to twelve entries; alphabetical order, capitalize only the first letter of the first key word unless a proper name; separated by semicolons)

'Acutance; Calibration; Conputer Programs; Mlcrodensitcmetry ; Photographic Edges;

Transfer Function.

18. AVAILABILITY [^j^ Unlimited

1 ! For Official Distribution. Do Not Release to NTIS

1 1 Order From Sup. of Doc, U.S. GoTernment Printing Office Washineton. D.( . 20402. SD Cat. No, C M

1^ ! Order From National Technical Infurmatiun Service (NTIS)

Springfield, Virginia 22151

19. SECURITY CLASS

(THIS REPORT)

UNCL ASSIFIED

21. NO. OF PAGES

38

20. SECURITY CLASS

(THIS PAGE)

UNCLASSIFIED

22. Price

$3.75

USCOMM-OC 29042-P74