Submit a request
Follow

Scanning

Q: Where can I find the description of scanning algorithms?
A: Please check this link: Tweaking Scanning Settings.

Q: What is the rawest form depth data that I can access?
A: The rawest form of data which can be accessed through SDK is triangular mesh.

Q: Can I get the depth of the frame?
A: Unfortunately, there is no such possibility.

Q: What scanning procedures are available?
A: IScanningProcedure::setState() can have the following states:

  • ScanningState_Preview starts the preview session or, when pressed in recording mode, pauses the recording of the frames.
  • ScanningState_Record enables recording of the frames into new scan.
  • ScanningState_ContinueRecord.
  • ScanningState_Stop stops scanning procedure.

As soon as you stop scanning procedure, you receive N scans (N is the number of changes from ScanningState_Record to ScanningState_Preview).

Q: How can I stop scanning procedure?
A: There are two ways to stop the scanning process.

The first method is to set the number of maximum captured frames (desc.maxFrameCount) and after system records this amount of frames, the scanning process will be stopped automatically.

The second method is to stop scanning procedure via pressing the button on Spider/Eva. In this case:

  • Set desc.maxFrameCount = 0, so it will not be limited from software side.
  • Use interface IScannerObserver. The part you will need is called ScannerObserverBase, for example, SimpleScannerObserver : public asdk::ScannerObserverBase in scanning-and-process-sample.h.

Original code in the sample:

case artec::sdk::capturing::ScannerButton_Stop:
std::cout << "ScannerEvent : stop button was pressed" << std::endl;
break;

Scanning procedure modification:

case artec::sdk::capturing::ScannerButton_Stop:
std::cout << "ScannerEvent : stop button was pressed" << std::endl;
scanning->setState(ScanningState_Stop);
break;

Q: How can I add the same scanning features and parameters as in Artec Studio "Scan" section?

A: Here is the list of the most popular ones:

  1. "Features to track" are controlled by enum RegistrationAlgorithmType function in IScanningProcedure interface (default value is hybrid, i.e. geometry+texture).
  2. "Scanning speed" can be adjusted via IScanner::setFPS() method. Please don't use "sleep" delay inside the onFrameCaptured() method of the IScanningProcedureObserver interface implementation (that callback should be lightweight).
  3. "Depth of field" can be controller via function setScanningRange in IScanningProcedure interface. Default values are listed in millimeters, more information is available technical specifications of Artec scanners.
  4. "Texture brightness" can be changed via function setTextureGain in IScanner. Alternatively, you can also use setTextureShutterSpeed (in this case please use getTextureGain or getTextureShutterSpeed commands to find the default values).
  5. "Sensitivity" is controlled via function setSensitivity in IScannerProcedure interface (in this case please use command getSensitivity to find the default value). The range is from 0.0f to 1.0f.
  6. "Do not record texture" can be set via function CaptureTextureMethod in IScannerProcedure interface (default value is OnTextureKeyFrame).
  7. "Disable flash bulb" is controlled via function enableTextureFlash in IScanner interface (default value is Enabled).

We are here to help! If you have any questions or issues, please do not hesitate to contact our team by emailing support@artec-group.com or by clicking on "Ask Support" button on the upper part of the screen. We will always be happy to assist you and will get back to you as soon as we can.