NI Vision for LabVIEW

IMAQ FPGA Local Threshold VI

  • Updated2023-02-21
  • 40 minute(s) read
Owning Palette: Processing
Requires: NI Vision Development Module FPGA

Thresholds an image into a binary image based on the specified local adaptive thresholding method.

IMAQ FPGA Local Threshold U8x1

Thresholds an image into a binary image based on the specified local adaptive thresholding method.

Instance Details

Supported Image Types

8-bit unsigned grayscale

IMAQ FPGA Local Threshold U8x1

cnclst.gif

Image Size specifies the image width and height in pixels. The maximum image size supported is 2600 x 2600 pixels.

cu32.gif

Width is the width of the image in pixels.

cu32.gif

Height is the height of the image in pixels.

ci16.gif

Method specifies the local thresholding algorithm the VI uses. The default is Niblack. The following values are valid:

Niblack (0)

Computes thresholds for each pixel based on its local statistics using the Niblack local thresholding algorithm.

Background Correction (1)

Performs background correction to eliminate non-uniform lighting effects and then performs thresholding using the interclass variance thresholding algorithm.

Sauvola (2)

Computes thresholds for each pixel based on its local statistics and also uses the global standard deviation, using the Sauvola local thresholding algorithm.

cu32.gif

Look For (Bright Objects) indicates the type of objects for which you want to look. The following values are valid:

Bright Objects (0)

Looks for objects in the image represented by pixels with values greater than the value computed by the threshold method.

Dark Objects (1)

Looks for objects in the image represented by pixels with values less than the value computed by the threshold method.

ccclst.gif

Pixel Bus In when Input Valid is TRUE, contains one of the following: valid pixel data, an end of line signal, or an end of image signal.

cu8.gif

Pixel Data is the value of the pixel.

cbool.gif

DV Data valid. Determines whether the Pixel Data element should be use (TRUE) or ignored (FALSE).

cbool.gif

EOL End of line. When TRUE, indicates that the end of the line has been reached.

cbool.gif

EOI End of image. When TRUE, indicates that the end of the image has been reached.

cenum.gif

Data Type is used in the block diagram for determining the type of the Pixel Bus. Unused during processing and gets optimized out of the compiled bit stream.

cnclst.gif

Window Size is a cluster specifying the size of the window the VI uses when calculating a local threshold. The window should be sized as large as possible but small enough that each window contains pixels with consistent levels of contrast. The VI will produce inconsistent results for windows that contain uniform pixel values. A typical window should be about the size of the object you want to segment in the image. The maximum window size supported is 2600 x 2600.

ci16.gif

SizeX is the size of the window in the x dimension.

ci16.gif

SizeY is the size of the window in the y dimension.

cfxp.gif

Niblack/Sauvola Deviation specifies the k constant used in the Niblack and Sauvola local thresholding algorithms, which determines the weight applied to the variance calculation. Valid k constants range from 0 to 1. The lower the deviation, the closer the pixel value must be to the mean value to be selected as part of a particle. Setting the Niblack/Sauvola Deviation to 0 will increase the performance of the VI because the VI will not calculate the variance for any of the pixels. The VI ignores this value if Method is not set to Niblack or Sauvola.

cu8.gif

Sauvola Deviation Range specifies the R constant used in the Sauvola local thresholding algorithm. The Sauvola Deviation Range and the Niblack/Sauvola Deviation Factor both determine the threshold calculation. The Sauvola Deviation Range is used to obtain better noise control in the thresholded image. The deviation range is equivalent to the dynamic range of the standard deviation of the image. Valid R constants depend on the bit depth of the image. For 8-bit images, the range is 1 to 255. The default value is 100. The VI ignores this value if Method is not set to Sauvola.

cbool.gif

Input Valid specifies whether the next data point has arrived for processing. Wire the Output Valid output of an upstream node to this input to transfer data from the upstream node to this node.

cbool.gif

Ready For Output specifies whether downstream nodes are ready for this node to return a new value. The default is TRUE. Use a Feedback Node to wire the Ready for Input output of a downstream node to this input of the current node.

Note  If this terminal is FALSE during a given cycle, the output valid terminal returns FALSE during that cycle.
ccclst.gif

External Memory Configuration is a cluster which contains references to external memory.

cio.gif

Intermediate Values stores in external memory the intermediate values of computation such as the sum of all the pixels in the kernel window for a particular row and the sum of squares of all the pixels in the Kernel window for a particular row. The number of DRAM elements to be allocated is equal to the Image Size (width * height).

cio.gif

Pixel Data U8x1 stores pixel intensity values in external memory as they arrive for processing. The number of DRAM elements to be allocated is equal to the Image Size (width * height).

icclst.gif

Binary Pixel Bus Out when Input Valid is TRUE, contains one of the following: valid pixel data, an end of line signal, or an end of image signal.

ibool.gif

Pixel Data is the value of the pixel.

ibool.gif

DV Data valid. Determines whether the Pixel Data element should be use (TRUE) or ignored (FALSE).

ibool.gif

EOL End of line. When TRUE, indicates that the end of the line has been reached.

ibool.gif

EOI End of image. When TRUE, indicates that the end of the image has been reached.

ienum.gif

Data Type is used in the block diagram for determining the type of the Pixel Bus. Unused during processing and gets optimized out of the compiled bit stream.

icclst.gif

Pixel Bus Out when Input Valid is TRUE, contains one of the following: valid pixel data, an end of line signal, or an end of image signal.

iu8.gif

Pixel Data is the value of the pixel.

ibool.gif

DV Data valid. Determines whether the Pixel Data element should be use (TRUE) or ignored (FALSE).

ibool.gif

EOL End of line. When TRUE, indicates that the end of the line has been reached.

ibool.gif

EOI End of image. When TRUE, indicates that the end of the image has been reached.

ienum.gif

Data Type is used in the block diagram for determining the type of the Pixel Bus. Unused during processing and gets optimized out of the compiled bit stream.

ibool.gif

Output Valid returns TRUE if this node has computed a result that downstream nodes can use. Wire this output to the Input Valid input of a downstream node to transfer data from the node to the downstream node.

ibool.gif

Ready for Input returns TRUE if this node is ready to accept new input data. Use a Feedback Node to wire this output to the Ready for Output input of an upstream node.

Note  If this terminal returns FALSE during a given cycle, LabVIEW discards any data that other nodes send to this node during the following cycle. LabVIEW discards this data even if the Input Valid terminal is TRUE during the following cycle.

IMAQ FPGA Local Threshold U8x1 Details

Note  Resource estimates are based on a 40 MHz clock.

Virtex-5

Estimated Device Utilization

  • Slice Registers: 12668
  • Slice LUTs: 15659
  • DSP48s: 54
  • Block RAMs: 28

Estimated Performance

  • Minimum Latency: 403
  • Initiation Interval: 1

Kintex-7

Estimated Device Utilization

  • Slice Registers: 10446
  • Slice LUTs: 11383
  • DSP48s: 28
  • Block RAMs: 61

Estimated Performance

  • Minimum Latency: 353
  • Initiation Interval: 1

IMAQ FPGA Local Threshold U8x1_DRAM512

Thresholds an image into a binary image based on the specified local adaptive thresholding method. Use this instance only on targets that have a DRAM data width of 512 bits. This instance ensures DRAM is efficiently utilized to give better throughput.

Instance Details

Supported Image Types

8-bit unsigned grayscale

IMAQ FPGA Local Threshold U8x1_DRAM512

cnclst.gif

Image Size specifies the image width and height in pixels. The maximum image size supported is 2600 x 2600 pixels.

cu32.gif

Width is the width of the image in pixels.

cu32.gif

Height is the height of the image in pixels.

ci16.gif

Method specifies the local thresholding algorithm the VI uses. The default is Niblack. The following values are valid:

Niblack (0)

Computes thresholds for each pixel based on its local statistics using the Niblack local thresholding algorithm.

Background Correction (1)

Performs background correction to eliminate non-uniform lighting effects and then performs thresholding using the interclass variance thresholding algorithm.

Sauvola (2)

Computes thresholds for each pixel based on its local statistics and also uses the global standard deviation, using the Sauvola local thresholding algorithm.

cu32.gif

Look For (Bright Objects) indicates the type of objects for which you want to look. The following values are valid:

Bright Objects (0)

Looks for objects in the image represented by pixels with values greater than the value computed by the threshold method.

Dark Objects (1)

Looks for objects in the image represented by pixels with values less than the value computed by the threshold method.

ccclst.gif

Pixel Bus In when Input Valid is TRUE, contains one of the following: valid pixel data, an end of line signal, or an end of image signal.

cu8.gif

Pixel Data is the value of the pixel.

cbool.gif

DV Data valid. Determines whether the Pixel Data element should be use (TRUE) or ignored (FALSE).

cbool.gif

EOL End of line. When TRUE, indicates that the end of the line has been reached.

cbool.gif

EOI End of image. When TRUE, indicates that the end of the image has been reached.

cenum.gif

Data Type is used in the block diagram for determining the type of the Pixel Bus. Unused during processing and gets optimized out of the compiled bit stream.

cnclst.gif

Window Size is a cluster specifying the size of the window the VI uses when calculating a local threshold. The window should be sized as large as possible but small enough that each window contains pixels with consistent levels of contrast. The VI will produce inconsistent results for windows that contain uniform pixel values. A typical window should be about the size of the object you want to segment in the image. The maximum window size supported is 2600 x 2600.

ci16.gif

SizeX is the size of the window in the x dimension.

ci16.gif

SizeY is the size of the window in the y dimension.

cfxp.gif

Niblack/Sauvola Deviation specifies the k constant used in the Niblack and Sauvola local thresholding algorithms, which determines the weight applied to the variance calculation. Valid k constants range from 0 to 1. The lower the deviation, the closer the pixel value must be to the mean value to be selected as part of a particle. Setting the Niblack/Sauvola Deviation to 0 will increase the performance of the VI because the VI will not calculate the variance for any of the pixels. The VI ignores this value if Method is not set to Niblack or Sauvola.

cu8.gif

Sauvola Deviation Range specifies the R constant used in the Sauvola local thresholding algorithm. The Sauvola Deviation Range and the Niblack/Sauvola Deviation Factor both determine the threshold calculation. The Sauvola Deviation Range is used to obtain better noise control in the thresholded image. The deviation range is equivalent to the dynamic range of the standard deviation of the image. Valid R constants depend on the bit depth of the image. For 8-bit images, the range is 1 to 255. The default value is 100. The VI ignores this value if Method is not set to Sauvola.

cbool.gif

Input Valid specifies whether the next data point has arrived for processing. Wire the Output Valid output of an upstream node to this input to transfer data from the upstream node to this node.

cbool.gif

Ready For Output specifies whether downstream nodes are ready for this node to return a new value. The default is TRUE. Use a Feedback Node to wire the Ready for Input output of a downstream node to this input of the current node.

Note  If this terminal is FALSE during a given cycle, the output valid terminal returns FALSE during that cycle.
ccclst.gif

External Memory Configuration is a cluster which contains references to external memory.

cio.gif

Intermediate Values stores in external memory the intermediate values of computation such as the sum of all the pixels in the kernel window for a particular row and the sum of squares of all the pixels in the Kernel window for a particular row. The number of DRAM elements to be allocated is equal to the Image Size (width * height).

cio.gif

Pixel Data U8x1 stores pixel intensity values in external memory as they arrive for processing. The number of DRAM elements to be allocated is equal to the Image Size (width * height).

icclst.gif

Binary Pixel Bus Out when Input Valid is TRUE, contains one of the following: valid pixel data, an end of line signal, or an end of image signal.

ibool.gif

Pixel Data is the value of the pixel.

ibool.gif

DV Data valid. Determines whether the Pixel Data element should be use (TRUE) or ignored (FALSE).

ibool.gif

EOL End of line. When TRUE, indicates that the end of the line has been reached.

ibool.gif

EOI End of image. When TRUE, indicates that the end of the image has been reached.

ienum.gif

Data Type is used in the block diagram for determining the type of the Pixel Bus. Unused during processing and gets optimized out of the compiled bit stream.

icclst.gif

Pixel Bus Out when Input Valid is TRUE, contains one of the following: valid pixel data, an end of line signal, or an end of image signal.

iu8.gif

Pixel Data is the value of the pixel.

ibool.gif

DV Data valid. Determines whether the Pixel Data element should be use (TRUE) or ignored (FALSE).

ibool.gif

EOL End of line. When TRUE, indicates that the end of the line has been reached.

ibool.gif

EOI End of image. When TRUE, indicates that the end of the image has been reached.

ienum.gif

Data Type is used in the block diagram for determining the type of the Pixel Bus. Unused during processing and gets optimized out of the compiled bit stream.

ibool.gif

Output Valid returns TRUE if this node has computed a result that downstream nodes can use. Wire this output to the Input Valid input of a downstream node to transfer data from the node to the downstream node.

ibool.gif

Ready for Input returns TRUE if this node is ready to accept new input data. Use a Feedback Node to wire this output to the Ready for Output input of an upstream node.

Note  If this terminal returns FALSE during a given cycle, LabVIEW discards any data that other nodes send to this node during the following cycle. LabVIEW discards this data even if the Input Valid terminal is TRUE during the following cycle.

IMAQ FPGA Local Threshold U8x1_DRAM512 Details

Note  Resource estimates are based on a 40 MHz clock.

Kintex-7

Estimated Device Utilization

  • Slice Registers: 18448
  • Slice LUTs: 21070
  • DSP48s: 33
  • Block RAMs: 80

Estimated Performance

  • Minimum Latency: 1
  • Initiation Interval: 1

IMAQ FPGA Local Threshold U16x1

Thresholds an image into a binary image based on the specified local adaptive thresholding method.

Instance Details

Supported Image Types

16-bit unsigned grayscale

IMAQ FPGA Local Threshold U16x1

cnclst.gif

Image Size specifies the image width and height in pixels. The maximum image size supported is 2600 x 2600 pixels.

cu32.gif

Width is the width of the image in pixels.

cu32.gif

Height is the height of the image in pixels.

ci16.gif

Method specifies the local thresholding algorithm the VI uses. The default is Niblack. The following values are valid:

Niblack (0)

Computes thresholds for each pixel based on its local statistics using the Niblack local thresholding algorithm.

Background Correction (1)

Performs background correction to eliminate non-uniform lighting effects and then performs thresholding using the interclass variance thresholding algorithm.

Sauvola (2)

Computes thresholds for each pixel based on its local statistics and also uses the global standard deviation, using the Sauvola local thresholding algorithm.

cu32.gif

Look For (Bright Objects) indicates the type of objects for which you want to look. The following values are valid:

Bright Objects (0)

Looks for objects in the image represented by pixels with values greater than the value computed by the threshold method.

Dark Objects (1)

Looks for objects in the image represented by pixels with values less than the value computed by the threshold method.

ccclst.gif

Pixel Bus In when Input Valid is TRUE, contains one of the following: valid pixel data, an end of line signal, or an end of image signal.

cu16.gif

Pixel Data is the value of the pixel.

cbool.gif

DV Data valid. Determines whether the Pixel Data element should be use (TRUE) or ignored (FALSE).

cbool.gif

EOL End of line. When TRUE, indicates that the end of the line has been reached.

cbool.gif

EOI End of image. When TRUE, indicates that the end of the image has been reached.

cenum.gif

Data Type is used in the block diagram for determining the type of the Pixel Bus. Unused during processing and gets optimized out of the compiled bit stream.

cnclst.gif

Window Size is a cluster specifying the size of the window the VI uses when calculating a local threshold. The window should be sized as large as possible but small enough that each window contains pixels with consistent levels of contrast. The VI will produce inconsistent results for windows that contain uniform pixel values. A typical window should be about the size of the object you want to segment in the image. The maximum window size supported is 255 x 255.

ci16.gif

SizeX is the size of the window in the x dimension.

ci16.gif

SizeY is the size of the window in the y dimension.

cfxp.gif

Niblack/Sauvola Deviation specifies the k constant used in the Niblack and Sauvola local thresholding algorithms, which determines the weight applied to the variance calculation. Valid k constants range from 0 to 1. The lower the deviation, the closer the pixel value must be to the mean value to be selected as part of a particle. Setting the Niblack/Sauvola Deviation to 0 will increase the performance of the VI because the VI will not calculate the variance for any of the pixels. The VI ignores this value if Method is not set to Niblack or Sauvola.

cu16.gif

Sauvola Deviation Range specifies the R constant used in the Sauvola local thresholding algorithm. The Sauvola Deviation Range and the Niblack/Sauvola Deviation Factor both determine the threshold calculation. The Sauvola Deviation Range is used to obtain better noise control in the thresholded image. The deviation range is equivalent to the dynamic range of the standard deviation of the image. Valid R constants depend on the bit depth of the image. For 16-bit images, the range is 1 to 65535. The default value is 2048. The VI ignores this value if Method is not set to Sauvola.

cbool.gif

Input Valid specifies whether the next data point has arrived for processing. Wire the Output Valid output of an upstream node to this input to transfer data from the upstream node to this node.

cbool.gif

Ready For Output specifies whether downstream nodes are ready for this node to return a new value. The default is TRUE. Use a Feedback Node to wire the Ready for Input output of a downstream node to this input of the current node.

Note  If this terminal is FALSE during a given cycle, the output valid terminal returns FALSE during that cycle.
ccclst.gif

External Memory Configuration is a cluster which contains references to external memory.

cio.gif

Intermediate Values stores in external memory the intermediate values of computation such as the sum of all the pixels in the kernel window for a particular row and the sum of squares of all the pixels in the Kernel window for a particular row. The number of DRAM elements to be allocated is equal to the Image Size (width * height).

cio.gif

Pixel Data U8x1 stores pixel intensity values in external memory as they arrive for processing. The number of DRAM elements to be allocated is equal to the Image Size (width * height).

icclst.gif

Binary Pixel Bus Out when Input Valid is TRUE, contains one of the following: valid pixel data, an end of line signal, or an end of image signal.

ibool.gif

Pixel Data is the value of the pixel.

ibool.gif

DV Data valid. Determines whether the Pixel Data element should be use (TRUE) or ignored (FALSE).

ibool.gif

EOL End of line. When TRUE, indicates that the end of the line has been reached.

ibool.gif

EOI End of image. When TRUE, indicates that the end of the image has been reached.

ienum.gif

Data Type is used in the block diagram for determining the type of the Pixel Bus. Unused during processing and gets optimized out of the compiled bit stream.

icclst.gif

Pixel Bus Dup when Input Valid is TRUE, contains one of the following: valid pixel data, an end of line signal, or an end of image signal.

iu16.gif

Pixel Data is the value of the pixel.

ibool.gif

DV Data valid. Determines whether the Pixel Data element should be use (TRUE) or ignored (FALSE).

ibool.gif

EOL End of line. When TRUE, indicates that the end of the line has been reached.

ibool.gif

EOI End of image. When TRUE, indicates that the end of the image has been reached.

ienum.gif

Data Type is used in the block diagram for determining the type of the Pixel Bus. Unused during processing and gets optimized out of the compiled bit stream.

ibool.gif

Output Valid returns TRUE if this node has computed a result that downstream nodes can use. Wire this output to the Input Valid input of a downstream node to transfer data from the node to the downstream node.

ibool.gif

Ready for Input returns TRUE if this node is ready to accept new input data. Use a Feedback Node to wire this output to the Ready for Output input of an upstream node.

Note  If this terminal returns FALSE during a given cycle, LabVIEW discards any data that other nodes send to this node during the following cycle. LabVIEW discards this data even if the Input Valid terminal is TRUE during the following cycle.

IMAQ FPGA Local Threshold U16x1 Details

Note  Resource estimates are based on a 40 MHz clock.

Virtex-5

Estimated Device Utilization

  • Slice Registers: 12457
  • Slice LUTs: 17526
  • DSP48s: 56
  • Block RAMs: 32

Estimated Performance

  • Minimum Latency: 421
  • Initiation Interval: 1

Kintex-7

Estimated Device Utilization

  • Slice Registers: 11984
  • Slice LUTs: 14612
  • DSP48s: 38
  • Block RAMs: 73

Estimated Performance

  • Minimum Latency: 353
  • Initiation Interval: 1

IMAQ FPGA Local Threshold U16x1_DRAM512

Thresholds an image into a binary image based on the specified local adaptive thresholding method. Use this instance only on targets that have a DRAM data width of 512 bits. This instance ensures DRAM is efficiently utilized to give better throughput.

Instance Details

Supported Image Types

16-bit unsigned grayscale

IMAQ FPGA Local Threshold U16x1_DRAM512

cnclst.gif

Image Size specifies the image width and height in pixels. The maximum image size supported is 2600 x 2600 pixels.

cu32.gif

Width is the width of the image in pixels.

cu32.gif

Height is the height of the image in pixels.

ci16.gif

Method specifies the local thresholding algorithm the VI uses. The default is Niblack. The following values are valid:

Niblack (0)

Computes thresholds for each pixel based on its local statistics using the Niblack local thresholding algorithm.

Background Correction (1)

Performs background correction to eliminate non-uniform lighting effects and then performs thresholding using the interclass variance thresholding algorithm.

Sauvola (2)

Computes thresholds for each pixel based on its local statistics and also uses the global standard deviation, using the Sauvola local thresholding algorithm.

cu32.gif

Look For (Bright Objects) indicates the type of objects for which you want to look. The following values are valid:

Bright Objects (0)

Looks for objects in the image represented by pixels with values greater than the value computed by the threshold method.

Dark Objects (1)

Looks for objects in the image represented by pixels with values less than the value computed by the threshold method.

ccclst.gif

Pixel Bus In when Input Valid is TRUE, contains one of the following: valid pixel data, an end of line signal, or an end of image signal.

cu16.gif

Pixel Data is the value of the pixel.

cbool.gif

DV Data valid. Determines whether the Pixel Data element should be use (TRUE) or ignored (FALSE).

cbool.gif

EOL End of line. When TRUE, indicates that the end of the line has been reached.

cbool.gif

EOI End of image. When TRUE, indicates that the end of the image has been reached.

cenum.gif

Data Type is used in the block diagram for determining the type of the Pixel Bus. Unused during processing and gets optimized out of the compiled bit stream.

cnclst.gif

Window Size is a cluster specifying the size of the window the VI uses when calculating a local threshold. The window should be sized as large as possible but small enough that each window contains pixels with consistent levels of contrast. The VI will produce inconsistent results for windows that contain uniform pixel values. A typical window should be about the size of the object you want to segment in the image. The maximum window size supported is 255 x 255.

ci16.gif

SizeX is the size of the window in the x dimension.

ci16.gif

SizeY is the size of the window in the y dimension.

cfxp.gif

Niblack/Sauvola Deviation specifies the k constant used in the Niblack and Sauvola local thresholding algorithms, which determines the weight applied to the variance calculation. Valid k constants range from 0 to 1. The lower the deviation, the closer the pixel value must be to the mean value to be selected as part of a particle. Setting the Niblack/Sauvola Deviation to 0 will increase the performance of the VI because the VI will not calculate the variance for any of the pixels. The VI ignores this value if Method is not set to Niblack or Sauvola.

cu16.gif

Sauvola Deviation Range specifies the R constant used in the Sauvola local thresholding algorithm. The Sauvola Deviation Range and the Niblack/Sauvola Deviation Factor both determine the threshold calculation. The Sauvola Deviation Range is used to obtain better noise control in the thresholded image. The deviation range is equivalent to the dynamic range of the standard deviation of the image. Valid R constants depend on the bit depth of the image. For 16-bit images, the range is 1 to 65535. The default value is 2048. The VI ignores this value if Method is not set to Sauvola.

cbool.gif

Input Valid specifies whether the next data point has arrived for processing. Wire the Output Valid output of an upstream node to this input to transfer data from the upstream node to this node.

cbool.gif

Ready For Output specifies whether downstream nodes are ready for this node to return a new value. The default is TRUE. Use a Feedback Node to wire the Ready for Input output of a downstream node to this input of the current node.

Note  If this terminal is FALSE during a given cycle, the output valid terminal returns FALSE during that cycle.
ccclst.gif

External Memory Configuration is a cluster which contains references to external memory.

cio.gif

Intermediate Values stores in external memory the intermediate values of computation such as the sum of all the pixels in the kernel window for a particular row and the sum of squares of all the pixels in the Kernel window for a particular row. The number of DRAM elements to be allocated is equal to the Image Size (width * height).

cio.gif

Pixel Data U8x1 stores pixel intensity values in external memory as they arrive for processing. The number of DRAM elements to be allocated is equal to the Image Size (width * height).

icclst.gif

Binary Pixel Bus Out when Input Valid is TRUE, contains one of the following: valid pixel data, an end of line signal, or an end of image signal.

ibool.gif

Pixel Data is the value of the pixel.

ibool.gif

DV Data valid. Determines whether the Pixel Data element should be use (TRUE) or ignored (FALSE).

ibool.gif

EOL End of line. When TRUE, indicates that the end of the line has been reached.

ibool.gif

EOI End of image. When TRUE, indicates that the end of the image has been reached.

ienum.gif

Data Type is used in the block diagram for determining the type of the Pixel Bus. Unused during processing and gets optimized out of the compiled bit stream.

icclst.gif

Pixel Bus Dup when Input Valid is TRUE, contains one of the following: valid pixel data, an end of line signal, or an end of image signal.

iu16.gif

Pixel Data is the value of the pixel.

ibool.gif

DV Data valid. Determines whether the Pixel Data element should be use (TRUE) or ignored (FALSE).

ibool.gif

EOL End of line. When TRUE, indicates that the end of the line has been reached.

ibool.gif

EOI End of image. When TRUE, indicates that the end of the image has been reached.

ienum.gif

Data Type is used in the block diagram for determining the type of the Pixel Bus. Unused during processing and gets optimized out of the compiled bit stream.

ibool.gif

Output Valid returns TRUE if this node has computed a result that downstream nodes can use. Wire this output to the Input Valid input of a downstream node to transfer data from the node to the downstream node.

ibool.gif

Ready for Input returns TRUE if this node is ready to accept new input data. Use a Feedback Node to wire this output to the Ready for Output input of an upstream node.

Note  If this terminal returns FALSE during a given cycle, LabVIEW discards any data that other nodes send to this node during the following cycle. LabVIEW discards this data even if the Input Valid terminal is TRUE during the following cycle.

IMAQ FPGA Local Threshold U16x1_DRAM512 Details

Note  Resource estimates are based on a 40 MHz clock.

Kintex-7

Estimated Device Utilization

  • Slice Registers: 20885
  • Slice LUTs: 24666
  • DSP48s: 40
  • Block RAMs: 94

Estimated Performance

  • Minimum Latency: 1
  • Initiation Interval: 1

IMAQ FPGA Modified Sauvola U8x1

Thresholds an image into a binary image using the modified Sauvola thresholding method.

Instance Details

Supported Image Types

8-bit unsigned grayscale

IMAQ FPGA Modified Sauvola U8x1

cnclst.gif

Image Size specifies the image width and height in pixels. The maximum image size supported is 2600 x 2600 pixels.

cu32.gif

Width is the width of the image in pixels.

cu32.gif

Height is the height of the image in pixels.

cu32.gif

Look For (Bright Objects) indicates the type of objects for which you want to look. The following values are valid:

Bright Objects (0)

Looks for objects in the image represented by pixels with values greater than the value computed by the threshold method.

Dark Objects (1)

Looks for objects in the image represented by pixels with values less than the value computed by the threshold method.

ccclst.gif

Pixel Bus In when Input Valid is TRUE, contains one of the following: valid pixel data, an end of line signal, or an end of image signal.

cu8.gif

Pixel Data is the value of the pixel.

cbool.gif

DV Data valid. Determines whether the Pixel Data element should be use (TRUE) or ignored (FALSE).

cbool.gif

EOL End of line. When TRUE, indicates that the end of the line has been reached.

cbool.gif

EOI End of image. When TRUE, indicates that the end of the image has been reached.

cenum.gif

Data Type is used in the block diagram for determining the type of the Pixel Bus. Unused during processing and gets optimized out of the compiled bit stream.

cnclst.gif

Window Size is a cluster specifying the size of the window the VI uses when calculating a local threshold. The window should be sized as large as possible but small enough that each window contains pixels with consistent levels of contrast. The VI will produce inconsistent results for windows that contain uniform pixel values. A typical window should be about the size of the object you want to segment in the image. The maximum window size supported is 1023 x 1023.

ci16.gif

SizeX is the size of the window in the x dimension. This value should be a multiple of 8. If it is not a multiple of 8, it will be coerced to the nearest multiple of 8.

ci16.gif

SizeY is the size of the window in the y dimension.

cfxp.gif

Sauvola Deviation specifies the k constant used in the Modified Sauvola local thresholding algorithm, which determines the weight applied to the variance calculation. Valid k constants range from 0 to 1. The lower the deviation, the closer the pixel value must be to the mean value to be selected as part of a particle. Setting the Sauvola Deviation to 0 will increase the performance of the VI because the VI will not calculate the variance for any of the pixels.

cu8.gif

Sauvola Deviation Range specifies the R constant used in the Sauvola local thresholding algorithm. The Sauvola Deviation Range and the Niblack/Sauvola Deviation Factor both determine the threshold calculation. The Sauvola Deviation Range is used to obtain better noise control in the thresholded image. The deviation range is equivalent to the dynamic range of the standard deviation of the image. Valid R constants depend on the bit depth of the image. For 8-bit images, the range is 1 to 255. The default value is 100. The VI ignores this value if Method is not set to Sauvola.

cbool.gif

Input Valid specifies whether the next data point has arrived for processing. Wire the Output Valid output of an upstream node to this input to transfer data from the upstream node to this node.

cbool.gif

Ready For Output specifies whether downstream nodes are ready for this node to return a new value. The default is TRUE. Use a Feedback Node to wire the Ready for Input output of a downstream node to this input of the current node.

Note  If this terminal is FALSE during a given cycle, the output valid terminal returns FALSE during that cycle.
ccclst.gif

External Memory Configuration is a cluster which contains references to external memory.

cio.gif

Intermediate Values stores in external memory the intermediate values of computation such as the sum of all the pixels in the kernel window for a particular row. The number of DRAM elements to be allocated is equal to the Image Size (width * height).

cio.gif

Pixel Data U8x1 stores pixel intensity values in external memory as they arrive for processing. The number of DRAM elements to be allocated is equal to the Image Size (width * height).

icclst.gif

Binary Pixel Bus Out when Input Valid is TRUE, contains one of the following: valid pixel data, an end of line signal, or an end of image signal.

ibool.gif

Pixel Data is the value of the pixel.

ibool.gif

DV Data valid. Determines whether the Pixel Data element should be use (TRUE) or ignored (FALSE).

ibool.gif

EOL End of line. When TRUE, indicates that the end of the line has been reached.

ibool.gif

EOI End of image. When TRUE, indicates that the end of the image has been reached.

ienum.gif

Data Type is used in the block diagram for determining the type of the Pixel Bus. Unused during processing and gets optimized out of the compiled bit stream.

icclst.gif

Pixel Bus Out when Input Valid is TRUE, contains one of the following: valid pixel data, an end of line signal, or an end of image signal.

iu8.gif

Pixel Data is the value of the pixel.

ibool.gif

DV Data valid. Determines whether the Pixel Data element should be use (TRUE) or ignored (FALSE).

ibool.gif

EOL End of line. When TRUE, indicates that the end of the line has been reached.

ibool.gif

EOI End of image. When TRUE, indicates that the end of the image has been reached.

ienum.gif

Data Type is used in the block diagram for determining the type of the Pixel Bus. Unused during processing and gets optimized out of the compiled bit stream.

ibool.gif

Output Valid returns TRUE if this node has computed a result that downstream nodes can use. Wire this output to the Input Valid input of a downstream node to transfer data from the node to the downstream node.

ibool.gif

Ready for Input returns TRUE if this node is ready to accept new input data. Use a Feedback Node to wire this output to the Ready for Output input of an upstream node.

Note  If this terminal returns FALSE during a given cycle, LabVIEW discards any data that other nodes send to this node during the following cycle. LabVIEW discards this data even if the Input Valid terminal is TRUE during the following cycle.

IMAQ FPGA Modified Sauvola U8x1 Details

Note  Resource estimates are based on a 40 MHz clock.

Virtex-5

Estimated Device Utilization

  • Slice Registers: 11482
  • Slice LUTs: 12566
  • DSP48s: 21
  • Block RAMs: 39

Estimated Performance

  • Minimum Latency: 55
  • Initiation Interval: 1

Kintex-7

Estimated Device Utilization

  • Slice Registers: 15940
  • Slice LUTs: 16794
  • DSP48s: 23
  • Block RAMs: 59

Estimated Performance

  • Minimum Latency: 3
  • Initiation Interval: 1

IMAQ FPGA Modified Sauvola U8x8_DRAM512

Thresholds an image into a binary image using the modified Sauvola thresholding method. Use this instance only on targets that have a DRAM data width of 512 bits. This instance ensures DRAM is efficiently utilized to give better throughput.

Instance Details

Supported Image Types

8-bit unsigned grayscale

IMAQ FPGA Modified Sauvola U8x8_DRAM512

cnclst.gif

Image Size specifies the image width and height in pixels. The maximum image size supported is 2600 x 2600 pixels.

cu32.gif

Width is the width of the image in pixels.

cu32.gif

Height is the height of the image in pixels.

cu32.gif

Look For (Bright Objects) indicates the type of objects for which you want to look. The following values are valid:

Bright Objects (0)

Looks for objects in the image represented by pixels with values greater than the value computed by the threshold method.

Dark Objects (1)

Looks for objects in the image represented by pixels with values less than the value computed by the threshold method.

ccclst.gif

Pixel Bus In when Input Valid is TRUE, contains one of the following: valid pixel data, an end of line signal, or an end of image signal.

cu8.gif

Pixel Data is the value of the pixel.

cbool.gif

DV Data valid. Determines whether the Pixel Data element should be use (TRUE) or ignored (FALSE).

cbool.gif

EOL End of line. When TRUE, indicates that the end of the line has been reached.

cbool.gif

EOI End of image. When TRUE, indicates that the end of the image has been reached.

cenum.gif

Data Type is used in the block diagram for determining the type of the Pixel Bus. Unused during processing and gets optimized out of the compiled bit stream.

cnclst.gif

Window Size is a cluster specifying the size of the window the VI uses when calculating a local threshold. The window should be sized as large as possible but small enough that each window contains pixels with consistent levels of contrast. The VI will produce inconsistent results for windows that contain uniform pixel values. A typical window should be about the size of the object you want to segment in the image. The maximum window size supported is 1023 x 1023.

ci16.gif

SizeX is the size of the window in the x dimension. This value should be a multiple of 8. If it is not a multiple of 8, it will be coerced to the nearest multiple of 8.

ci16.gif

SizeY is the size of the window in the y dimension.

cfxp.gif

Sauvola Deviation specifies the k constant used in the Modified Sauvola local thresholding algorithm, which determines the weight applied to the variance calculation. Valid k constants range from 0 to 1. The lower the deviation, the closer the pixel value must be to the mean value to be selected as part of a particle. Setting the Sauvola Deviation to 0 will increase the performance of the VI because the VI will not calculate the variance for any of the pixels.

cu8.gif

Sauvola Deviation Range specifies the R constant used in the Sauvola local thresholding algorithm. The Sauvola Deviation Range and the Niblack/Sauvola Deviation Factor both determine the threshold calculation. The Sauvola Deviation Range is used to obtain better noise control in the thresholded image. The deviation range is equivalent to the dynamic range of the standard deviation of the image. Valid R constants depend on the bit depth of the image. For 8-bit images, the range is 1 to 255. The default value is 100. The VI ignores this value if Method is not set to Sauvola.

cbool.gif

Input Valid specifies whether the next data point has arrived for processing. Wire the Output Valid output of an upstream node to this input to transfer data from the upstream node to this node.

cbool.gif

Ready For Output specifies whether downstream nodes are ready for this node to return a new value. The default is TRUE. Use a Feedback Node to wire the Ready for Input output of a downstream node to this input of the current node.

Note  If this terminal is FALSE during a given cycle, the output valid terminal returns FALSE during that cycle.
ccclst.gif

External Memory Configuration is a cluster which contains references to external memory.

cio.gif

Intermediate Values stores in external memory the intermediate values of computation such as the sum of all the pixels in the kernel window for a particular row. The number of DRAM elements to be allocated is equal to the Image Size (width * height).

cio.gif

Pixel Data U8x8 stores pixel intensity values in external memory as they arrive for processing. The number of DRAM elements to be allocated is equal to the Image Size (width * height).

icclst.gif

Binary Pixel Bus Out when Input Valid is TRUE, contains one of the following: valid pixel data, an end of line signal, or an end of image signal.

ibool.gif

Pixel Data is the value of the pixel.

ibool.gif

DV Data valid. Determines whether the Pixel Data element should be use (TRUE) or ignored (FALSE).

ibool.gif

EOL End of line. When TRUE, indicates that the end of the line has been reached.

ibool.gif

EOI End of image. When TRUE, indicates that the end of the image has been reached.

ienum.gif

Data Type is used in the block diagram for determining the type of the Pixel Bus. Unused during processing and gets optimized out of the compiled bit stream.

icclst.gif

Pixel Bus Out when Input Valid is TRUE, contains one of the following: valid pixel data, an end of line signal, or an end of image signal.

iu8.gif

Pixel Data is the value of the pixel.

ibool.gif

DV Data valid. Determines whether the Pixel Data element should be use (TRUE) or ignored (FALSE).

ibool.gif

EOL End of line. When TRUE, indicates that the end of the line has been reached.

ibool.gif

EOI End of image. When TRUE, indicates that the end of the image has been reached.

ienum.gif

Data Type is used in the block diagram for determining the type of the Pixel Bus. Unused during processing and gets optimized out of the compiled bit stream.

ibool.gif

Output Valid returns TRUE if this node has computed a result that downstream nodes can use. Wire this output to the Input Valid input of a downstream node to transfer data from the node to the downstream node.

ibool.gif

Ready for Input returns TRUE if this node is ready to accept new input data. Use a Feedback Node to wire this output to the Ready for Output input of an upstream node.

Note  If this terminal returns FALSE during a given cycle, LabVIEW discards any data that other nodes send to this node during the following cycle. LabVIEW discards this data even if the Input Valid terminal is TRUE during the following cycle.

IMAQ FPGA Modified Sauvola U8x8_DRAM512 Details

Note  Resource estimates are based on a 40 MHz clock.

Kintex-7

Estimated Device Utilization

  • Slice Registers: 31302
  • Slice LUTs: 36178
  • DSP48s: 44
  • Block RAMs: 127

Estimated Performance

  • Minimum Latency: 1
  • Initiation Interval: 1