diff --git a/documentation/NDPluginROI.html b/documentation/NDPluginROI.html index 7fef536..a5dd652 100755 --- a/documentation/NDPluginROI.html +++ b/documentation/NDPluginROI.html @@ -10,7 +10,7 @@

areaDetector Plugin NDPluginROI

- August 17, 2009

+ March 7, 2010

Mark Rivers

@@ -30,11 +30,21 @@ NDPluginROI selects one or more rectangular "Regions-Of-Interest" (ROIs) from the NDArray callback data. The maximum number of ROIs is defined when the plugin is created. Each ROI can be any size, from a single array element to the entire array. - NDPluginROI does 3 things with these ROIs: + NDPluginROI optinally does the following operations with these ROIs, in this order:

    -
  1. Computes statistics, e.g. mean, maximum, minimum, total value, net (background - subtracted) value
  2. +
  3. Extracts of the selected region. When the ROI is extracted the following operations + can be performed: +
      +
    • Binning in any dimension.
    • +
    • Orientation reversal (mirroring) in any dimension.
    • +
    • Conversion to a new data type.
    • +
    +
  4. +
  5. Subtracts a background array which has been previously acquired.
  6. +
  7. Clips to minimum and maximum specified values.
  8. +
  9. Computes statistics, e.g. mean, maximum, minimum, total, net (background subtracted), + and centroid values.
  10. Computes a histogram of the values (e.g. number of pixels versus intensity per pixel)
  11. Exports the ROI as a new NDArray object. In this regard NDPluginROI is different @@ -53,7 +63,7 @@ maximizing the use of multiple CPU cores. Individual ROIs are addressed through the asyn interfaces by the asyn "addr" field in the asynUser structure. Note that while the NDPluginROI should be N-dimensional, the EPICS interface to the definition - of the ROI is currently limited to a maximum of 3-D. This limitation will be removed + of the ROI is currently limited to a maximum of 3-D. This limitation may be removed in a future release.

    @@ -559,6 +569,166 @@ longin + + + ROI clipping and background subtraction + + + + NDPluginROI
    + GrabBackground + + asynInt32 + + r/w + + Command to use the most recently acquired ROI array as a background. Note that this + recently acquired ROI should have been acquired with EnableBackground=0, or else + that array will already have had the background subtracted, which is probably not + what was intended! + + GRAB_BACKGROUND + + $(P)$(R)GrabBackground
    + $(P)$(R)GrabBackground_RBV + + bo
    + bi + + + + NDPluginROI
    + ValidBackground + + asynInt32 + + r/o + + Flag indicating whether there is a valid background array that has been acquired + for this ROI using GrabBackground. This flag will be Invalid (0) if no background + has been acquired, or of the size of the ROI has changed since the background was + last acquired. + + VALID_BACKGROUND + + $(P)$(R)ValidBackground_RBV + + bi + + + + NDPluginROI
    + EnableBackground + + asynInt32 + + r/w + + Flag indicating whether the background array acquired with GrabBackground should + be subtracted when computing this ROI. This background subtraction is done before + the clipping operations, and before the statistics are computed. If ValidBackground=0 + then no background subtraction is done. This background subtraction modifies the + ROI data, so other plugins that use this ROI will receive the background subtracted + data. + + ENABLE_BACKGROUND + + $(P)$(R)EnableBackground
    + $(P)$(R)EnableBackground_RBV + + bo
    + bi + + + + NDPluginROI
    + DoLowClip + + asynInt32 + + r/w + + Flag to control whether to clip values to the LowClip value for this ROI (0=No, + 1=Yes). + + + ENABLE_LOW_CLIP + + $(P)$(R)EnableLowClip
    + $(P)$(R)EnableLowClip_RBV + + bo
    + bi + + + + NDPluginROI
    + LowClip + + asynFloat64 + + r/w + + The minimum allowed value for this ROI. If EnableLowClip=1, then all values in the + array less than LowClip will be replaced by LowClip. This clipping operation is + performed after the background is subtracted (if EnableBackground=1). This clipping + modifies the ROI data, so other plugins that use this ROI will receive the clipped + data. + + + LOW_CLIP + + $(P)$(R)LowClip
    + $(P)$(R)LowClip_RBV + + ao
    + ai + + + + NDPluginROI
    + EnableHighClip + + asynInt32 + + r/w + + Flag to control whether to clip values to the HighClip value for this ROI (0=No, + 1=Yes). + + + ENABLE_HIGH_CLIP + + $(P)$(R)EnableHighClip
    + $(P)$(R)EnableHighClip_RBV + + bo
    + bi + + + + NDPluginROI
    + HighClip + + asynFloat64 + + r/w + + The maximum allowed value for this ROI. If EnableHighClip=1, then all values in + the array greater than HighClip will be replaced by HighClip. This clipping operation + is performed after the background is subtracted (if EnableBackground=1). This clipping + modifies the ROI data, so other plugins that use this ROI will receive the clipped + data. + + + HIGH_CLIP + + $(P)$(R)HighClip
    + $(P)$(R)HighClip_RBV + + ao
    + ai + ROI statistics @@ -663,7 +833,10 @@ Net (background subtracted) total of all elements in the ROI. The background is calculated by determining the average counts per array element in a border around the ROI of width NDPluginROIBgdWidth. This average background counts per element - is then subtracted from all elements inside the ROI. + is then subtracted from all elements inside the ROI. If NDPluginROIBgdWidth is ≤ + 0 then no background is computed. Note that this background subtraction is done + after the "array" background is subtracted if EnableBackground=1, as described above. + NET @@ -671,6 +844,40 @@ ai + + + NDPluginROI
    + CentroidX + + asynFloat64 + + r/o + + X centroid of the ROI. + + CENTROIDX_VALUE + + $(P)$(R)CentroidX_RBV + + ai + + + + NDPluginROI
    + CentroidY + + asynFloat64 + + r/o + + Y centroid of the ROI. + + CENTROIDY_VALUE + + $(P)$(R)CentroidY_RBV + + ai + ROI histogram