IMAQ FPGA Local Threshold VI
- Updated2023-02-21
- 40 minute(s) read
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.
Supported Image Types

![]() |
Image Size specifies the image width and height in pixels. The maximum image size supported is 2600 x 2600 pixels.
|
||||||||||
![]() |
Method specifies the local thresholding algorithm the VI uses. The default is Niblack. The following values are valid:
|
||||||||||
![]() |
Look For (Bright Objects) indicates the type of objects for which you want to look. The following values are valid:
|
||||||||||
![]() |
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.
|
||||||||||
![]() |
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.
|
||||||||||
![]() |
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. |
||||||||||
![]() |
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. |
||||||||||
![]() |
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. |
||||||||||
![]() |
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.
|
||||||||||
![]() |
External Memory Configuration is a cluster which contains references to external memory.
|
||||||||||
![]() |
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.
|
||||||||||
![]() |
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.
|
||||||||||
![]() |
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. |
||||||||||
![]() |
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.
|
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.
Supported Image Types

![]() |
Image Size specifies the image width and height in pixels. The maximum image size supported is 2600 x 2600 pixels.
|
||||||||||
![]() |
Method specifies the local thresholding algorithm the VI uses. The default is Niblack. The following values are valid:
|
||||||||||
![]() |
Look For (Bright Objects) indicates the type of objects for which you want to look. The following values are valid:
|
||||||||||
![]() |
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.
|
||||||||||
![]() |
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.
|
||||||||||
![]() |
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. |
||||||||||
![]() |
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. |
||||||||||
![]() |
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. |
||||||||||
![]() |
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.
|
||||||||||
![]() |
External Memory Configuration is a cluster which contains references to external memory.
|
||||||||||
![]() |
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.
|
||||||||||
![]() |
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.
|
||||||||||
![]() |
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. |
||||||||||
![]() |
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.
|
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.
Supported Image Types

![]() |
Image Size specifies the image width and height in pixels. The maximum image size supported is 2600 x 2600 pixels.
|
||||||||||
![]() |
Method specifies the local thresholding algorithm the VI uses. The default is Niblack. The following values are valid:
|
||||||||||
![]() |
Look For (Bright Objects) indicates the type of objects for which you want to look. The following values are valid:
|
||||||||||
![]() |
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.
|
||||||||||
![]() |
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.
|
||||||||||
![]() |
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. |
||||||||||
![]() |
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. |
||||||||||
![]() |
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. |
||||||||||
![]() |
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.
|
||||||||||
![]() |
External Memory Configuration is a cluster which contains references to external memory.
|
||||||||||
![]() |
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.
|
||||||||||
![]() |
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.
|
||||||||||
![]() |
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. |
||||||||||
![]() |
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.
|
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.
Supported Image Types

![]() |
Image Size specifies the image width and height in pixels. The maximum image size supported is 2600 x 2600 pixels.
|
||||||||||
![]() |
Method specifies the local thresholding algorithm the VI uses. The default is Niblack. The following values are valid:
|
||||||||||
![]() |
Look For (Bright Objects) indicates the type of objects for which you want to look. The following values are valid:
|
||||||||||
![]() |
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.
|
||||||||||
![]() |
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.
|
||||||||||
![]() |
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. |
||||||||||
![]() |
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. |
||||||||||
![]() |
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. |
||||||||||
![]() |
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.
|
||||||||||
![]() |
External Memory Configuration is a cluster which contains references to external memory.
|
||||||||||
![]() |
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.
|
||||||||||
![]() |
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.
|
||||||||||
![]() |
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. |
||||||||||
![]() |
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.
|
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.
Supported Image Types

![]() |
Image Size specifies the image width and height in pixels. The maximum image size supported is 2600 x 2600 pixels.
|
||||||||||
![]() |
Look For (Bright Objects) indicates the type of objects for which you want to look. The following values are valid:
|
||||||||||
![]() |
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.
|
||||||||||
![]() |
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.
|
||||||||||
![]() |
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. |
||||||||||
![]() |
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. |
||||||||||
![]() |
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. |
||||||||||
![]() |
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.
|
||||||||||
![]() |
External Memory Configuration is a cluster which contains references to external memory.
|
||||||||||
![]() |
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.
|
||||||||||
![]() |
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.
|
||||||||||
![]() |
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. |
||||||||||
![]() |
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.
|
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.
Supported Image Types

![]() |
Image Size specifies the image width and height in pixels. The maximum image size supported is 2600 x 2600 pixels.
|
||||||||||
![]() |
Look For (Bright Objects) indicates the type of objects for which you want to look. The following values are valid:
|
||||||||||
![]() |
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.
|
||||||||||
![]() |
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.
|
||||||||||
![]() |
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. |
||||||||||
![]() |
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. |
||||||||||
![]() |
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. |
||||||||||
![]() |
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.
|
||||||||||
![]() |
External Memory Configuration is a cluster which contains references to external memory.
|
||||||||||
![]() |
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.
|
||||||||||
![]() |
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.
|
||||||||||
![]() |
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. |
||||||||||
![]() |
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.
|
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















