| 
 | |||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||
java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Frame
                          |
                          +--ij.plugin.frame.PlugInFrame
                                |
                                +--MeasureMTF_
This plugin simplifies the task of measuring the Modulation Transfer Function (resolution) of an optical system, given an image of variously sized bar patterns.
This dialog-box-like plugin is based on the PlugInFrame class, and could serve as an example of how to automate repeated measurements.
Reference:
Sitter, D.N., Goddard, J.S., and Ferrell, R.K., (1995), "Method for the measurement of the modulation transfer function of sampled imaging systems from bar-target patterns.", Applied Optics, v. 34 n. 4, pp. 746-751.
| Inner classes inherited from class java.awt.Frame | 
| java.awt.Frame.AccessibleAWTFrame | 
| Inner classes inherited from class java.awt.Window | 
| java.awt.Window.AccessibleAWTWindow | 
| Inner classes inherited from class java.awt.Container | 
| java.awt.Container.AccessibleAWTContainer | 
| Inner classes inherited from class java.awt.Component | 
| java.awt.Component.AccessibleAWTComponent, java.awt.Component.AWTTreeLock | 
| Field Summary | |
| (package private)  boolean | bFirstTopLeftfirst bar is at the top or on the left | 
| (package private) static boolean | bHasMtfData | 
| (package private) static boolean | bMtfHeadingsCreatedHave the column headings in the main measurement window been created? | 
| (package private)  boolean | bPlotDFTplot the DFT result? | 
| (package private)  java.awt.Button | buttonClearMtf | 
| (package private)  java.awt.Button | buttonCreateRoi | 
| (package private)  java.awt.Button | buttonFirstBar | 
| (package private)  java.awt.Button | buttonMeasureBlack | 
| (package private)  java.awt.Button | buttonMeasureMtf | 
| (package private)  java.awt.Button | buttonMeasureWhite | 
| (package private)  java.awt.Button | buttonNextBar | 
| (package private)  java.awt.Button | buttonRecalculate | 
| (package private)  java.awt.Button | buttonRetrieveLength | 
| (package private)  boolean | bVerticalmeasure vertically? | 
| (package private)  java.awt.Checkbox | checkFirstTopLeft | 
| (package private)  java.awt.Checkbox | checkPlotDFT | 
| (package private)  java.awt.Checkbox | checkVertical | 
| (package private)  java.awt.Choice | choiceBarSpacing | 
| (package private) static double | dBARLENGTHdistance between each grating in um (micrometers) | 
| (package private)  double | dBarSpacingdistance between cycles | 
| (package private)  double | dBlackLevelmeasured black bar intensity | 
| (package private)  double | dDutyCyclelength of white portion/total spacing (i.e. | 
| (package private)  double | dKnownLengthknown length in um (micrometers) | 
| (package private) static double | dMeasuredLengthmeasured length in pixels | 
| (package private)  double | dScalecalculated scale in pix/um | 
| (package private)  double | dWhiteLevelmeasured white bar intensity | 
| (package private)  int | iCyclesToMeasurenumber of cycles to measure | 
| (package private)  int | iLinesToAveragehow many lines of pixel data to average for each bar profile | 
| (package private)  int | iMeasurementSizetotal length of profile to measure | 
| (package private)  java.awt.Label | labelBlackLevel | 
| (package private)  java.awt.Label | labelMeasurementSize | 
| (package private)  java.awt.Label | labelScale | 
| (package private)  java.awt.Label | labelWhiteLevel | 
| (package private) static int | nHARMONICSnumber of DFT harmonics to plot | 
| (package private)  java.awt.Panel | panel | 
| (package private)  java.awt.TextField | textCyclesToMeasure | 
| (package private)  java.awt.TextField | textDutyCycle | 
| (package private)  java.awt.TextField | textKnownLength | 
| (package private)  java.awt.TextField | textLinesToAverage | 
| (package private)  java.awt.TextField | textMeasuredLength | 
| Fields inherited from class ij.plugin.frame.PlugInFrame | 
| title | 
| Fields inherited from class java.awt.Frame | 
| base, CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, frameSerializedDataVersion, HAND_CURSOR, icon, ICONIFIED, mbManagement, menuBar, MOVE_CURSOR, N_RESIZE_CURSOR, nameCounter, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, ownedWindows, resizable, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, serialVersionUID, state, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR, weakThis | 
| Fields inherited from class java.awt.Window | 
| active, dbg, focusMgr, inputContext, inputContextLock, OPENED, ownedWindowList, warningString, windowListener, windowSerializedDataVersion | 
| Fields inherited from class java.awt.Container | 
| component, containerListener, containerSerializedDataVersion, dispatcher, layoutMgr, listeningBoundsChildren, listeningChildren, maxSize, ncomponents, printing, printingThreads | 
| Fields inherited from class java.awt.Component | 
| accessibleContext, actionListenerK, adjustmentListenerK, appContext, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, changeSupport, componentListener, componentListenerK, componentOrientation, componentSerializedDataVersion, containerListenerK, cursor, dropTarget, enabled, eventMask, focusListener, focusListenerK, font, foreground, graphicsConfig, hasFocus, height, hierarchyBoundsListener, hierarchyBoundsListenerK, hierarchyListener, hierarchyListenerK, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, metrics, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, name, nameExplicitlySet, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, privateKey, RIGHT_ALIGNMENT, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowClosingException, windowListenerK, x, y | 
| Fields inherited from interface java.awt.image.ImageObserver | 
| ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH | 
| Constructor Summary | |
| MeasureMTF_()Constructor. | |
| Method Summary | |
| (package private)  double[] | AbsDFT(double[] adX,
       int iNK)Calculates the magnitude of the Discrete Fourier Transform of an array of values. | 
|  void | actionPerformed(java.awt.event.ActionEvent e)Handle button presses, etc. | 
| (package private)  void | clearMTF()Clears all MTF values from the ImageJ measurement list. | 
| (package private)  void | createROI(ij.ImagePlus imp)Creates a rectangular Region Of Interest that is the right size to perform the profile measurement. | 
| (package private)  void | measureMTF(ij.ImagePlus imp)Finds the profile, calculates the DFT of the data, then calculates the MTF for this bar spacing based on the fundamental frequency (zero'th harmonic). | 
| (package private)  void | moveROI(ij.ImagePlus imp,
        double dDistDown,
        double dDistOver)Moves the current Region Of Interest down by a certain distance in um. | 
| (package private)  void | recalculate()Recalculate all parameters from user inputs | 
| (package private)  double | sinc(double x)Calculates the sinc function of a number | 
| Methods inherited from class ij.plugin.frame.PlugInFrame | 
| processWindowEvent, run | 
| Methods inherited from class java.awt.Frame | 
|  | 
| Methods inherited from class java.awt.Window | 
| addOwnedWindow, addWindowListener, adjustListeningChildren, applyResourceBundle, applyResourceBundle, connectOwnedWindow, dispatchEventImpl, dispose, eventEnabled, getFocusOwner, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getOwnedWindows, getOwner, getToolkit, getWarningString, hide, isActive, isShowing, nextFocus, ownedInit, pack, postEvent, postWindowEvent, preProcessKeyEvent, processEvent, removeOwnedWindow, removeWindowListener, resetGC, setCursor, setFocusOwner, setWarningString, show, toBack, toFront, transferFocus | 
| Methods inherited from class java.awt.Container | 
| add, add, add, add, add, addContainerListener, addImpl, applyOrientation, checkGD, countComponents, createChildHierarchyEvents, createHierarchyEvents, deliverEvent, dispatchEventToSelf, doLayout, findComponentAt, findComponentAt, findComponentAt, getAccessibleAt, getAccessibleChild, getAccessibleChildrenCount, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getInsets, getLayout, getMaximumSize, getMinimumSize, getMouseEventTarget, getPreferredSize, getWindow, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPaint, lightweightPrint, list, list, locate, minimumSize, numListening, paint, paintComponents, paintHeavyweightComponents, postsOldMouseEvents, preferredSize, print, printComponents, printHeavyweightComponents, processContainerEvent, proxyEnableEvents, proxyRequestFocus, remove, remove, removeAll, removeContainerListener, setFont, setLayout, update, validate, validateTree | 
| Methods inherited from class java.awt.Component | 
| action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, addPropertyChangeListener, areInputMethodsEnabled, bounds, checkImage, checkImage, checkWindowClosingException, coalesceEvents, contains, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, getAccessibleIndexInParent, getAccessibleStateSet, getBackground, getBounds, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getInputMethodRequests, getLocation, getLocation, getLocationOnScreen_NoTreeLock, getLocationOnScreen, getName, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getSize, getToolkitImpl, getTreeLock, getWidth, getWindowForObject, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isDisplayable, isDoubleBuffered, isEnabled, isEnabledImpl, isFocusTraversable, isLightweight, isOpaque, isRecursivelyVisible, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setForeground, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus | 
| Methods inherited from class java.lang.Object | 
| clone, equals, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait | 
| Methods inherited from interface java.awt.MenuContainer | 
| getFont, postEvent | 
| Field Detail | 
java.awt.Panel panel
java.awt.TextField textMeasuredLength
java.awt.Button buttonRetrieveLength
java.awt.TextField textKnownLength
java.awt.Label labelScale
java.awt.Label labelWhiteLevel
java.awt.Button buttonMeasureWhite
java.awt.Label labelBlackLevel
java.awt.Button buttonMeasureBlack
java.awt.TextField textCyclesToMeasure
java.awt.Choice choiceBarSpacing
java.awt.TextField textDutyCycle
java.awt.TextField textLinesToAverage
java.awt.Label labelMeasurementSize
java.awt.Checkbox checkVertical
java.awt.Checkbox checkFirstTopLeft
java.awt.Checkbox checkPlotDFT
java.awt.Button buttonRecalculate
java.awt.Button buttonCreateRoi
java.awt.Button buttonMeasureMtf
java.awt.Button buttonClearMtf
java.awt.Button buttonFirstBar
java.awt.Button buttonNextBar
static final int nHARMONICS
static final double dBARLENGTH
static double dMeasuredLength
double dKnownLength
double dScale
double dWhiteLevel
double dBlackLevel
int iCyclesToMeasure
double dBarSpacing
double dDutyCycle
int iLinesToAverage
int iMeasurementSize
boolean bVertical
boolean bFirstTopLeft
boolean bPlotDFT
static boolean bMtfHeadingsCreated
static boolean bHasMtfData
| Constructor Detail | 
public MeasureMTF_()
| Method Detail | 
public void actionPerformed(java.awt.event.ActionEvent e)
actionPerformed in interface java.awt.event.ActionListenervoid createROI(ij.ImagePlus imp)
void moveROI(ij.ImagePlus imp,
             double dDistDown,
             double dDistOver)
void recalculate()
void clearMTF()
void measureMTF(ij.ImagePlus imp)
double sinc(double x)
double[] AbsDFT(double[] adX,
                int iNK)
| 
 | |||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||