Impact Acquire SDK GUI Applications
Advanced Operation

The Status Bar

If the status bar is enabled (see Options for how to switch on and off the status bar) and a device has been initialized and is currently transferring data various data is displayed here:

ImpactControlCenter - Status Bar

From left to right the following data is available:

  • FPS: The current frame rate as a slow running average. The value will slowly adjust to the current capture frame rate
  • Display Frame Rate: The current rate captured data is displayed with. This value will never be higher than the FPS value. Capturing data has the highest priority
    and display updates will be skipped in favor of being able to capture and process all data. The rough display frame rate can be configured via 'Settings → Set Update Frequency...'
  • MB/s: The current average bandwidth used for capturing data from the selected device
  • Frame Buffer Usage: The current fill level of the device's frame buffer. This is a feature only available for certain Balluff devices. A value somewhere around 0 which sometimes increases and sometimes decreases would be normal. An ever increasing value or a more or less constant value of 100% indicates a bandwidth problem
  • Frames: The value of the 'FrameCount' property from the 'Statistics' property list. In contrast to the 'FrameNr' property display in the image overlay this value
    is even increased for timed out, aborted or otherwise erroneous buffers. See tool-tip/documentation of that property to find out more
  • Errors: The value of the 'ErrorCount' property from the 'Statistics' property list. See tool-tip/documentation of that property to find out more
  • Timeouts: The value of the 'TimedOutRequests' property from the 'Statistics' property list. See tool-tip/documentation of that property to find out more
  • Aborted: The value of the 'AbortedRequestsCount' property from the 'Statistics' property list. See tool-tip/documentation of that property to find out more
  • Lost: The value of the 'LostImagesCount' property from the 'Statistics' property list. See tool-tip/documentation of that property to find out more
  • Incomplete: The value of the 'FramesIncompleteCount' property from the 'Statistics' property list. See tool-tip/documentation of that property to find out more
  • Image: The dimensions and pixel format of the buffer currently displayed
  • (x,y): The value of the pixel of the current coordinates when moving over the image with the mouse pointer

Options

Various additional things can be configured via the "Options" dialog

ImpactControlCenter - Options

Most of these are self explanatory. Those requiring some explanation are listed in the following sections.

Use Selector Grouping

This is an option coming as a requirement from the GenICam™ standard (https://www.emva.org/standards-technology/genicam/) where the concept of Selectors exists. With these option enable (the default behaviour) features which are selected by others will be grouped below the selecting feature in The Property Grid whenever possible. This usually results in a better tree structure. To find out more about Selectors please refer to the GenICam™ standard.

ImpactControlCenter - A Sub-Tree Of The Property Grid With Selector Grouping Active




ImpactControlCenter - A Sub-Tree Of The Property Grid With Selector Grouping Inactive

Prefer Display Names

A feature can have a so called display name in addition to it's API/feature name. This display name might include whitespace characters and other things forbidden for normal feature names and sometimes might improve readability in a GUI. Switching this option on or off will fill The Property Grid with either the real feature names (as an API call would use them) or (if available) with the display names associated with each feature. In case a feature does not define a display name the real feature name will be used instead.

ImpactControlCenter - A Sub-Tree Of The Property Grid Using Display Names




ImpactControlCenter - The Same Sub-Tree Of The Property Grid Using Normal Feature Names

Synchronous Method Execution

  • With this feature active, Methods invoked from The Property Grid will be executed in the main thread of the application. This results in the GUI to block until the method has been executed completely.
  • With this option disabled (the default behaviour) method calls will be executed in a background task. Calling several lengthly methods quickly will queue all the jobs into a queue. This queue will be monitored by a background task and this background task then will execute one method after the other(NEVER two or more in parallel) and will report back each individual execution result back to the main thread of the application. Potential errors will be displayed from the main thread e.g. in the "Output" window of the Image Analysis controls or by displaying a popup window containing details of the failure. The GUI will always stay responsive.

Allow Fast Single Frame Acquisition

With this option enabled the "Acquire" button can be pressed several times in "SingleFrame" mode even if the previous image transfer is still ongoing. Some third party devices might have problems with remembering all single frame requests however since the standard doesn't really enforce a certain behavior here. Some devices might return some kind of "I am still busy" notification others might simply queue all requests and send out individual image one after the other. This option sometimes can be useful to test for exactly this behaviour.

Detailed Driver Information

The driver information dialog can be accessed by pressing the "Info" button in the upper toolbar of the application. It needs some time to open up since it will scan every driver loaded and every device accessible through that driver before opening. Afterwards a tree visualizing the current driver/interface/device stack will be displayed:

ImpactControlCenter - Driver Information
  • Each driver loaded will result in one entry directly below the Drivers node
    • This entry will at least contain the full path and version of this driver
  • If at least one device has been detected by a driver then below this specific driver node there will be another sub-node Devices listing all the devices currently detected
  • In case of the mvGenTLConsumer library the setup is a little different:
    • Here below the actual GenICam™ GenTL Consumer several GenICam™ GenTL Producers might be listed since the Impact Acquire Consumer is capable to connect to an arbitrary number of 3rd party Producers as well as to the Balluff specific ones.
    • According to the GenICam™ GenTL standard each Producer represents devices detected connected to interfaces thus the tree here is a little deeper
    • Impact Acquire allows to disable the enumeration of certain interfaces or even complete Producer libraries for performance and also for stability reasons in case a Producer detected in the current system doesn't operate well with the rest of the framework. What is enumerated and what is not can be configured by using the check-boxes within the dialog. The configuration will be stored permanently and can be configured at any time.
    • Opening this dialog however is meant to display ALL devices thus even if a certain interface is not meant to be enumerated opening this dialog will do so. As a consequence ImpactControlCenter will display all devices connected to disabled interfaces upon leaving the dialog again until the application is closed and restarted again.

More information about GenTL Consumer and Producer setup can be found in the corresponding chapter in the API manuals. A more complex setup might look somewhat like this:

ImpactControlCenter - Complex Driver Information

Here several third party Producers each exposing a one or more interfaces can be seen. Also different transport layer technologies are supported as shown in the image from above.

See also

Display Possibilities

By default ImpactControlCenter will only display complete images. Incompletely captured images(e.g. due to transmission errors or bandwidth shortages) will increase driver internal error counters only. These errors can either be observed in The Status Bar or by navigating to the Statistics section of The Property Grid. If for debugging purposes also incomplete images shall be displayed this can be changed either via the menu item "Settings → Image Display → Show Incomplete Frames" or by pressing the "Incomplete" button on the left toolbar.

The area displaying the actual image has a zoom feature and when zoom in a lot, a thumbnail of the full image can be displayed as well by enabling the Monitor Display from the left toolbar. Within the monitor display the part of the zoomed image which is currently visible within the selected display will be marked then:

ImpactControlCenter - Using the monitor display

To zoom in and out of the image, the display window needs to be selected first by left-clicking on it and then the +/- keys or the mouse wheel can be used. In order to do this the Fit To Screen option for this display window must be switched off! This option as well as various other things affecting the behaviour of this display window can be configured by right-clicking on the display area.

ImpactControlCenter - Display options
  • "Fit To Screen": Will scale the image in a way that the maximum area is occupied while the aspect ratio is preserved. With this option enabled regular zooming will not be possible.
  • "1:1 Display": Will set all zoom factors back to 1. Will be ignored if "Fit To Screen" is active.
  • "Full Screen": On Windows when a continuous acquisition is running will switch the display windows into a DirectX based exclusive window. Only the live image will be displayed than. Pressing ESCAPE will switch back to normal operation.
  • "Scaling Mode": Will allow to select between different scaling options when zooming in and out of the image. All modes provide either better performance in terms of CPU usage or better quality in terms of less scaling artifacts. Which mode is best depends on the application.
  • "Set Bit Shift Value": See Bit-shifting An Image
  • "Request Info Overlay": Will display all meta-information (e.g. timestamp, frame ID, ...) belonging to each image on top of the display actual image data
  • "Select Request Info Overlay": Allows to select a custom color for the "Request Info Overlay"
  • "Performance Warning Overlay": Will display various information about potential performance bottlenecks in the current setup on top of the actual image data
  • "Warn On Modifications Applied To The Image By The Display (By An Overlay)": If active a message will be drawn on top of the image in the main display area to inform e.g. about data modifications applied to the image by the display module (e.g. bit shifting).
  • "Save Current Image": Will open a save dialog and will eventually store the image in the selected format to the selected location
  • "Copy Current Image To Clipboard": Will copy the current image into the systems clipboard

Within the far right corner of The Status Bar the intensity of the pixel the mouse currently hovers on in the display area will be displayed:

ImpactControlCenter - Current pixel data

From left to right these value are:

  • The X-offset within the image
  • The Y-offset within the image
  • The intensities for the individual color channels depending on the current pixel format(e.g. as from the screenshot above: The red, green and blue intensity of that pixel)

Bit-shifting An Image

Captured images in the display area by default are displayed by using the 8 most significant bits (MSB) of the image only. Using the "Set Bit Shift Value" option from the display's context menu (see above) however it is possible to display every consecutive 8-bit of a multi-byte image:

ImpactControlCenter - Set Bit Shift Value

This value results in a different group of bits being displayed allowing to see noise or other things otherwise hidden in the LSBs (least significant bits) of the image. Apart from the dialog also left-clicking on the display and then using the left and right arrow keys can be used to adjust the bit shift value.

Note
When enabling the "Warn On Modifications Applied To The Image By The Display" the currently displayed bits are written on top of the image!
ImpactControlCenter - 12-bit grey-scale image and display options by using the bit shift value

In this particular case, the pixel will be brighter (as the most significant bits are 1’s). Perhaps you already recognized it. Each shift means that each pixel value is multiplied or divided by 2 according to the direction.

Anyway, there is one restriction in the 8 bit display:

If the pixel value is greater than 255, the pixel value will be clipped to 255. To describe this from a programmer’s view; a represents the pixel value:

 a = ( a > 255 ) ? 255 : a 

Combined with the monitor image shown above also the MSBs can be seen in parallel since the monitor display will not use the bit shift value at all.

Displaying Multiple Images In A Single Display Window (LineScan Mode)

A display window can be configured to display multiple consecutive images as a single big one. A typical use case for this would be a line scan camera where several small stripes shall be combined as a single big image. But same can also be used with area scan images. Usually just a single image will be displayed and will be overwritten by the next image:

ImpactControlCenter - Standard Mode

Now when several images shall be combined the "Configure Images Per Display Count..." menu option must be selected:

ImpactControlCenter - Setting up multiple images into a single display

This will open a dialog providing some additional explanation and allowing the user to select how many images shall be combined into a single one:

ImpactControlCenter - Selecting the number of images displayed into a single display
Note
This operating will consume additional RAM and CPU cycles!

After configuration a continuous (or single frame based) acquisition can be started again and the big buffer will be filled in aring-buffer fashion, meaning when the last section of the big buffer has been filled with a fresh image the next time the uppermost section will be updated again:

ImpactControlCenter - 6 images displayed in a ring buffer as a single image

Using Multiple Displays

ImpactControlCenter is also capable of working with multiple display windows! This becomes particularly useful when either working with one device and multiple settings as described here or when working with a GenICam™ device that offers a sequencer. See Sequencer Control Wizard to find out more about that!

The amount of parallel image displays can be configured via the Command-line Interface by the parameters "dcx" and "dcy":

ImpactControlCenter dcx=1 dcy=2 

This will result in 1 display in horizontal direction and 2 in vertical direction.

Since
Version 2.18.1 of this application

It is also possible to change the amount of display at runtime via "Settings → Image Displays → Configure Image Display Count":

ImpactControlCenter - Configure Image Display Count

Afterwards 2 smaller dialogs will pop up allowing to select the amount of display windows in X/horizontal direction:

ImpactControlCenter - Selection of display windows in horizontal direction

And in Y/vertical direction:

ImpactControlCenter - Selection of display windows in vertical direction

As a result then the application will look like this:

ImpactControlCenter - 2 by 3 display windows

Each display window can be configured individually via it's context menu. For example it is possible to assign different scaling factors and interpolation algorithms to each window. The perform an analysis like calculating a histogram the corresponding display must be selected by left-clicking on it.

Setting Up Multiple Display Support, Working With Several Capture Settings In Parallel

ImpactControlCenter

  • is capable of dealing with multiple capture settings or acquisition sequences for a single device
  • can be configured to deal with multiple image displays

"Frame grabber":

  • For frame grabbers with multiple input channels this e.g. can be used to display live images from all input channels simultaneously. This even works if each input channel is connected to a different video signal in terms of resolution and timing.

Additional capture settings can be created via the menu item: "Capture → Capture Settings → Create Capture Settings". The Property Grid will display these capture settings either in "Developers" or in "Multiple Settings View".

Note
In GenICam interface layout multiple capture settings are NOT supported. However, you can define different acquisition sets using the SequencerControl category of features or the corresponding sequencer wizard of ImpactControlCenter if supported by the device.

Now, in order to set up ImpactControlCenter to work with 2 instead of one capture setting,

  1. Various additional capture settings can be created. In order to understand what a capture setting actually is please refer to

    • "Image Acquisition → Working With Settings" chapter of the Impact Acquire API manuals. Creating a capture setting is done via the menu: "Capture → Capture Settings → Create Capture Setting".
    ImpactControlCenter - Create capture setting



  2. Then, the user is asked for the name of the new setting.

    ImpactControlCenter - Create capture setting - Choosing name



  3. And finally for the base this new setting shall be derived from.

    ImpactControlCenter - Create capture setting - Choosing base

Afterwards, in this example we end up having 2 capture settings:

  • a "Base" setting, which is always available
  • a "NewSetting1", which has been derived from "Base".
ImpactControlCenter - Two settings

As "NewSetting1" has been derived from "Base" changing a property in "Base" will automatically change this property in "NewSetting1" if this property has not already been modified in "NewSetting1". Again to get an understanding for this behaviour please refer to

  • "Working with settings" chapter of the Impact Acquire API manuals.

Now, to set up ImpactControlCenter to display all images taken using capture setting "Base" in one display and all image taken using capture setting "NewSetting1" in another display the capture settings need to be assigned to image displays via "Capture → Capture Settings → Assign To Display(s)". How to create multiple display windows is explained in Using Multiple Displays.

ImpactControlCenter - Assigning displays
ImpactControlCenter - Assigning displays

By default a new setting when created will be assigned to one of the available displays in a round-robin scheme, thus when there are 3 displays, the first (Base) setting will be assigned to "Display 0", the next to "Display 1", the next to "Display 2" and a fourth setting will be assigned to "Display 0" again. The setting to display relationships can be customized via "Capture → Capture Settings → Assign to Display(s)".

As each image display keeps a reference to the request, this image belongs to the driver can't re-use the request buffer until a new request is drawn into this display. Thus, it might be necessary to increase the number of request objects the driver is working with if a larger number of displays are involved. The minimum number of requests needed is 2 times the amount of images displays. The number of requests used by the driver can be set up in the drivers property tree:

ImpactControlCenter - Setting up request count

Finally, ImpactControlCenter must be configured in order to use all available capture settings in a round-robin scheme. This can be done by setting the capture setting usage mode to "Automatic" via "Capture → Capture Settings → Usage Mode":

ImpactControlCenter - Capture setting usage mode

That's it. Now, starting a live acquisition will display live images in both displays and each display is using a different set of capture parameters. If a device supports parallel acquisition from multiple input channels, this will increase

  • the used bandwidth and also
  • the CPU load

as ImpactControlCenter now needs to display more images per second. Each display can be configured independently thus e.g. one display can be used scaled while the other displays 1:1 data. The analysis plots can be assigned to a specific display by left-clicking on the corresponding image display, the info plot will plot a graph for each capture setting in parallel.

ImpactControlCenter - Running example

When only one setting shall be used at a given time, this can be achieved by setting the capture setting usage mode back to "Manual" via "Capture → Capture Settings → Usage Mode". Then the setting that shall be used can be manually selected in the request control list:

ImpactControlCenter - Manual Setting Usage Mode

This can even be changed during a running acquisition.

Finally when the capture setting usage mode has been set to Automatic a continuous acquisition using all settings can be started that will display all images that have been captured using a certain setting into a specific display window:

ImpactControlCenter - Manual Setting Usage Mode

Record To RAM

It is also possible to record image sequences using ImpactControlCenter:

  1. Clicking the Rec. button.
  2. Press Acquire
  3. When all images have been recorded the Next and Prev. buttons can be used to display the individual images.

If you switched on the request info overlay (see Display Possibilities), the additional information will be displayed for each image as well. With the timestamp you can see the interval between the individual frames in microseconds.

ImpactControlCenter - Using the record mode.

Without changing anything else recording works by using all request objects currently available to the driver (see "System Settings → RequestCount"). So instead of freeing a request object and feeding it back into the driver as soon as a new image has been sent to the display module all the buffers are kept in memory. Because of that the acquisition will stop automatically once RequestCount images have been captured. The capturing can either be done in SingleFrame, Continuous or even in MultiFrame mode.

Advanced Options

More recording options are available:

ImpactControlCenter - Advanced recording options
  • "Silent Mode": Enabling this option will no longer display dialogs like asking the user to confirm the deletion of the current recorded sequence before recording a new one.
  • "Continuous": Enabling this option will no longer stop the recording once all buffers have been filled but instead will always keep all the most recent buffers in memory and when necessary discarding the oldest one when capturing a new one. This can be useful when a certain event/scene shall be captured and it is not fully known when this will happen. When enough buffers are available simply stopping the acquisition afterwards will allow to view the last buffers then
  • "Setup Sequence Size": This will open a small dialog allowing to define sequence length that is larger than the number of request objects available to the driver by effectively creating a deep copy of each image. The dialog will display some additional details regarding this option.

Storing Recorded Sequences

It is also possible to store recorded sequences in various ways:

ImpactControlCenter - Storing recorded sequences
  • "Save Images Into Separate Files": This will open a file dialog allowing the selection of an output directory and a file format for the operation. Afterwards individual image files will be written into that directory. If meta-data is attached to these images (e.g. when working with chunk data) this information might be saved as XML-file in the same directory as the image, when the corresponding checkbox in the file dialog is checked. Otherwise the meta-data will be lost.
  • "Save Images Into Stream": This will open a file dialog allowing the selection of an output file name. Afterwards all the data will be written into a single file. This will keep all the meta-data like chunk information but as no header or anything else will be added to the output file a user needs to know what to do with this data afterwards. The stream will contain a 1:1 copy of all the captured buffers one after the other. This can NOT be imported back into ImpactControlCenter nor can it be parsed without additional knowledge! To record streams of images Video Stream Recording With FFmpeg might be a better alternative if meta-data is not needed.

Record To Hard Disk

This mode can be used to save a sequence of images from the current acquisition to the hard disk directly.

You can save acquired images to the hard disk the following way:

  • Select "Capture → Setup Hard Disk Recording" from the menu.
  • Enable the Hard Disk Recording.
  • Enable saving of meta data if needed.
  • Afterwards select the target folder for the images.
  • Finally, choose the file format of the acquired images.
  • Click "Apply" or "Ok" to finish the setup
  • Current status information will be visible in the Output tab of the Image Analysis (The Big Picture)
ImpactControlCenter - Hard Disk Recording.

Snapshot To Hard Disk Mode

Since
Version 2.37.0 of this application

The snapshot mode can be used to save single images from the current acquisition to the hard disk directly.

ImpactControlCenter - Snapshot Setup

For this, please follow these steps:

  • Select "Capture → Setup Snapshot To Hard Disk Mode" from the menu.
  • In the setup window, enable the snapshot mode.
  • Enable saving of meta data if needed.
  • Select the destination folder on your hard disk.
  • Select the desired file format of the image(s).
  • Click "Apply" or "Ok" to finish the setup
  • Now you can save the current image by pressing the space bar. Make sure, that the ImpactControlCenter main window is selected.
  • Current status information will be visible in the Output tab of the Analysis Area (The Big Picture)

Video Stream Recording With FFmpeg

Since
Version 2.39.0 of this application

With the Video Stream Recording, it is possible to compress the acquired images into a video stream container and save it on the hard disk.

Note
The recording functionality is based on features provided by the FFmpeg (https://ffmpeg.org) project. In order to use it you need to:
  • Download the shared FFmpeg packages in version 4.x from the project website
  • Extract the package in the proper folder, specified by your operating system (Have a look at the detailed documentation of the VideoStream class for the programming language you plan to work with, use C++ if you don't plan to develop code. Within the C++ documentation navigate to "Modules → Common → VideoStream", click on it and scroll down to "Detailed Description")

In ImpactControlCenter, a video stream can be recorded by the 'Start', 'Pause' and 'Stop' buttons at the top right tool-bar. They are however inactive when the video stream recording mode is deactivated OR when the video stream is not correctly set up.

Figure 1: Video stream recording control buttons (inactive)

A video stream needs to be set up first to be able to get recorded. To do so:

  1. Select the device to use and open it by clicking on the 'Use' button.
  2. Navigate to the 'Capture' menu and click on the 'Video Stream Recording...' option to start a setup dialog.
    Figure 2: Click 'Video Stream Recording...'

  3. A setup dialog will then be initialized as follows. Please read the setup hints in the text box for more information.
    Figure 3: Video stream recording setup dialog

  4. Enable the video stream recording mode. Choose a pixel format (e.g. 'YUV422Packed' or 'YUV422Planar') that will be generated by the device driver and used by FFmpeg for video stream encoding. Then click on 'Select an output file' to create/choose a file to hold the recorded video stream.
    Figure 4: Enable the video stream recording mode and set up device driver related parameters

  5. In the file selector, choose a file type (e.g. '*.mp4' or '*.m2v') and enter a file name.
    Figure 5: Select an output file

  6. Set up video stream related parameters accordingly. In the check boxes below, users are allowed to choose whether to synchronize acquisition stop with recording stop and whether to overwrite the already recorded video stream if the currently selected output file has the same file name as the previous one.
    Figure 6: Set up video stream related parameters

  7. Once the video stream recording has been set up, click 'Apply' or 'Ok' to apply the current settings. Afterwards, a log message in the analysis output will indicate whether the current settings have been applied successfully. If successful, the 'Start' control button at the top right tool-bar will be enabled.
    Figure 7: Apply the current settings
Note
When deactivating the video stream recording, uncheck the 'Enable video stream recording mode' and then click 'Apply' or 'Ok' for the settings to take effect.

Once the settings have been applied, users can control the recording process via the 'Start', 'Pause' and 'Stop' buttons:

  • Start recording: Click the 'Start' control button to start recording the video stream. The current recording status and information will be displayed in the analysis output. During recording, the setup dialog as well as the 'Start' button will be disabled. The 'Pause' and 'Stop' buttons will then be enabled.
    Figure 8: Start recording

  • Pause recording: Click the 'Pause' button to pause a running recording. The current recording status will be displayed in the analysis output.
    Figure 9: Pause recording

  • Resume recording: Click the 'Pause' button to resume a paused recording. The current recording status will be displayed in the analysis output.
    Figure 10: Resume recording

  • Stop recording: Click the 'Stop' button to stop recording the video stream. The current recording status and information will be displayed in the analysis output. Once the recording has been stopped, the setup dialog as well as the 'Start' button will be enabled again. The 'Pause' and 'Stop' buttons will then be disabled.
    Figure 11: Stop recording

When recording to an output file which has the same file name as the previous one while overwriting the recorded content is not desired:

  1. When clicking 'Start', a file selector will pop up to ask users to create a new output file with the same file type as the previous one. If a new set of parameters of the video stream recording is needed, please click 'Cancel' in the file selector and re-configure parameters in the setup dialog.
    Figure 12: Select a new file when starting to record to an output file with the same file name as the previous one without overwriting

  2. Once a new file has been created, the video stream will start to get recorded. The current recording status and information will be displayed in the analysis output. During recording, the setup dialog as well as the 'Start' button will be disabled. The 'Pause' and 'Stop' buttons will then be enabled.
    Figure 13: Start recording to an output file with the same file name as the previous one without overwriting

Influencing The Image Processing Performance

Impact Acquire internally as well as ImpactControlCenter's various analysis and display options make massive use of various techniques to improve the overall processing performance. One of the techniques used is OpenMP (https://en.wikipedia.org/wiki/OpenMP) for distributing the load caused by expensive algorithms. Usually the OpenMP runtime choses acceptable default parameters for these tasks but sometimes or on some platforms manual adjustment might become necessary. When defaults are not ideal for whatever reasons or you simply want to play around with this feature the number of threads used by the OpenMP runtime can be configured manually:

ImpactControlCenter - Setting the OpenMP Thread Count

The number of threads can be anything between 1 and the number of CPUs in the current system. More threads introduce more overhead thus the speed gain typically is NOT linear as it be seen in the next image:

ImpactControlCenter - Image Processing Time With Different Thread Counts

This timing diagram was generated by using the Feature Versus Time Plot. It can be seen that adding more threads to a task is not always perfect. In fact the additional CPU time needed can be rather high (have a look at the task manager of your system as well).

Note
Depending on the compiler used to build Impact Acquire and/or ImpactControlCenter setting the thread count might either affect the whole process (Windows) or the display and analysis module of ImpactControlCenter only (Linux). On systems where this does only affect ImpactControlCenter itself each Impact Acquire driver instance will allow to adjust the maximum number of threads that shall be used for driver internal image processing as well. In that case the property "SystemSettings → ImageProcessing → ImageProcessingMaximumThreadCount" will be available and can be configured as needed.
Since
Version 2.41.0 of this application

Sharpness Adjustment / Focus Your Lens

Sharpness Adjustment can be performed quite easily using on of the profile plots! See Horizontal/Vertical Line Profile to find out how to do this.