Skip to content

Smart Vision C++ 接口文档

Smart Vision SDK C++ API

tip

To compile with Smart Vision SDK C++ API, include the Smart Vision SDK header file:

#include "smart_vision.hpp"

When linking, specify the Smart Vision SDK shared library, for example:

$g++ example.cpp -o demo -lsmartvision -L/usr/local/lib/

Smart Vision SDK header file path: /usr/local/include/aidlux/smartvision/smart_vision.hpp

Smart Vision SDK library file path: /usr/local/lib/libsmartvision.so

C++ API Overview

ClassPublic Member FunctionsDescription
Cameraint8_t open(GetImageCB cb)Open camera in parameterless mode
int8_t open(const DeviceParam & dev_param, GetImageCB cb)Open camera with parameters
void start_capture(void)Start streaming (Note: USB and Hikvision cameras do not support stream control, same below)
void stop_capture(void)Stop streaming
int8_t close()Close camera
void set_camera_type(CameraType camera_type)Set camera type. Supported types: MIPI_CAMERA_ENUM1 / USB_CAMERA_ENUM2 / USB_CAMERA_ENUM3. Default is MIPI.
StructMember VariableTypeDescription
DeviceParamcfg_nameconst char *Path to parameter configuration file
Imagedataconst char *Pointer to buffer containing image data
wuint64_tTarget image width
huint64_tTarget image height
cuint64_tNumber of image channels (typically 3)
lengthuint64_tMemory length occupied by image data
IOConfigdo1_keeptimeuint32_tSignal 1 duration
do2_keeptimeuint32_tSignal 2 duration
do1SignalTypePin 1
do2SignalTypePin 2
TcpConfigipconst char *IP address
portuint16_tPort number
SVSdkMemfdInfosrcYPlaneStrideintWidth of YUV data
srcSliceHeightintHeight of YUV data
memCopyStartIndexintStart index value (Note: Start index equals End index)
memCopyEndIndexintEnd index value
planeOffsetintYUV offset value
cam_idintCamera index ID
Public FunctionDescription
void set_log_level(SVLogLevel log_level)Set log level
void set_log_destination(const char* destinationPath, bool also_to_stderr)Set log file name and path
void log_to_stderr()Output logs to terminal. Once set, log files will not be saved. Generally not recommended.
typedef std::function<int8_t( const Image & , const SVSdkMemfdInfo & )> GetImageCBUsed as input parameter for open() function to acquire image resources. This function is user-defined. The interface only provides type definition to standardize the callback function definition.
int8_t get_signal_sending_mode(IOConfig & iosetting, TcpConfig & tcpsetting)Get signal output configuration. Determine whether IO or TCP configuration is returned based on the return value. If return value is 1, IO configuration is returned from iosetting object.
int8_t set_io_signal_send_mode(SignalType do1, SignalType do2, uint32_t do1_keeptime = 0, uint32_t do2_keeptime = 0)Set IO signal output configuration. For example, setting do1 to NG_SIGNAL means pin 1 can only send NG signals. Note that pin 1 and pin 2 cannot be set to the same signal type simultaneously (e.g., both NG or both alarm).
int8_t set_tcp_signal_send_mode(const char* ip, uint16_t port)Set TCP signal output configuration. The IP address and port are for the server side.
int8_t set_off_mode()Set OFF mode to disable signal output.
int8_t io_send_ng()Send NG signal via IO.
int8_t io_send_alarm_raising()Send alarm signal via IO.
int8_t io_send_alarm_clear()Send alarm clear signal via IO.
int8_t tcp_send_ng()Send NG signal via TCP.
int8_t tcp_send_alarm()Send alarm signal via TCP.
int8_t tcp_send_alarmclear()Send alarm clear signal via TCP.
int8_t save_result(const char *release_id, const char *release_version, const char *origin_file, const char *mask_file, const char *final_file, const char *additional = "")Package image analysis task result file paths and additional information as JSON and report to local SVE service.
int8_t notify_sve(SPhase phase_enum)Send current task phase notification to local SVE service via HTTP (POST) request.
EnumMember VariableTypeDescription
SVLogLevelSINFOuint8_tLog level SINFO
SWARNINGuint8_tLog level SWARNING
SERRORuint8_tLog level SERROR
SDEBUGuint8_tLog level SDEBUG
SOFFuint8_tLog level SOFF (log disabled)
SignalTypeOFFuint8_tDisable signal output
NG_SIGNALuint8_tNG signal output mode
ALARM_SIGNALuint8_tAlarm signal output mode
OK_SIGNALuint8_tOK signal output mode
CameraTypeMIPI_CAMERA_ENUM1uint8_tMIPI camera
USB_CAMERA_ENUM2uint8_tGeneric USB camera
USB_CAMERA_ENUM3uint8_tHikvision USB camera

Camera Class

Operations related to instantiating Camera objects. Camera operations such as opening and capturing images are all based on instantiated Camera objects.

warning

Unless otherwise specified, all definitions belong to the Aidlux::SmartVision namespace. Import them in code using:

using namespace Aidlux::SmartVision;

Open Camera (Parameterless Mode)

APIint8_t open(GetImageCB cb)
DescriptionOpen camera in parameterless mode.
ParametersInput parameter is a callback function. Callback function is user-defined. See Callback Function GetImageCB for details.
Return Value0: Success. -1: Failure.

Example (camera is an instance of Camera class, same below):

cpp
// Open camera in parameterless mode
int8_t res = camera.open(my_get_img_cb);

Open Camera (With Parameters)

APIint8_t open(const DeviceParam & dev_param, GetImageCB cb)
DescriptionOpen camera with parameters.
Parametersdev_param: Instance of DeviceParam struct. cb: Callback function. Callback function is user-defined. See Callback Function GetImageCB for details.
Return Value0: Success. -1: Failure.

Example:

cpp
// Open camera with parameters
int8_t res = camera.open(dev_param, my_get_img_cb);

Start Streaming

APIvoid start_capture(void)
DescriptionStart streaming
ParametersNone
Return ValueNone

Example:

cpp
// Start streaming
camera.start_capture();

Stop Streaming

APIvoid stop_capture(void)
DescriptionStop streaming
ParametersNone
Return ValueNone

Example:

cpp
// Stop streaming
camera.stop_capture();

Close Camera (Function close)

APIint8_t close()
DescriptionClose camera
ParametersNone
Return Value0: Success. -1: Failure.

Example:

cpp
// Close camera
camera.close();

Set Camera Type (Function set_camera_type)

APIvoid set_camera_type(CameraType camera_type)
DescriptionSet camera type
Parameterscamera_type: CameraType enum value. Supported types: MIPI_CAMERA_ENUM1 / USB_CAMERA_ENUM2 / USB_CAMERA_ENUM3
Return ValueNone

Example:

cpp
// Set camera type to Hikvision camera
camera.set_camera_type(USB_CAMERA_ENUM3);

Struct DeviceParam

Defines the path to parameter configuration file. This configuration file is used to configure camera parameters. Therefore, this struct is only used when opening camera with parameters.

Member VariableTypeDefaultDescription
cfg_nameconst char*Path to parameter configuration file

Struct Image

Defines image data related information, including image configuration and pointer variables.

Member VariableTypeDefaultDescription
dataconst char*Pointer to buffer containing data
wuint64_tTarget image width
huint64_tTarget image height
cuint64_tNumber of image channels (typically 3)
lengthuint64_tMemory length occupied by image data

Struct IOConfig

Defines IO signal output configuration.

Member VariableTypeDefaultDescription
do1_keeptimeuint32_tSignal 1 duration
do2_keeptimeuint32_tSignal 2 duration
do1SignalTypePin 1
do2SignalTypePin 2

Struct TcpConfig

Defines TCP signal output configuration.

Member VariableTypeDefaultDescription
ipconst char*IP address
portuint16_tPort number

Struct SVSdkMemfdInfo

Defines data buffer information.

Member VariableTypeDefaultDescription
srcYPlaneStrideintWidth of YUV data
srcSliceHeightintHeight of YUV data
memCopyStartIndexintStart index value (Note: Start index equals End index)
memCopyEndIndexintEnd index value
planeOffsetintYUV offset value
cam_idintCamera index ID

Set Log Level (Function set_log_level)

APIvoid set_log_level(SVLogLevel log_level)
DescriptionSet log level.
Parameterslog_level: SVLogLevel enum. See SVLogLevel Enum for details.
Return ValueNone

Example:

cpp
// Set log level
Aidlux::SmartVision::set_log_level(SVLogLevel::SINFO);

Set Log File Name and Path (Function set_log_destination)

APIvoid set_log_destination(const char* destinationPath, bool also_to_stderr)
DescriptionSet log file name and path
ParametersdestinationPath: Log file path, default is "./aidclog_smart_vision_". also_to_stderr: Whether to output to terminal, default is false
Return ValueNone

Example:

cpp
// Set log file name and path
const char* log_path = "./aidclog_smart_vision_";
Aidlux::SmartVision::set_log_destination(log_path);

Output Logs to Terminal (Function log_to_stderr)

APIvoid log_to_stderr()
DescriptionOutput logs to terminal. Once set, log files will not be saved. Generally not recommended.
ParametersNone
Return ValueNone

Example:

cpp
// Set log output to terminal
log_to_stderr();

Log Level (Enum SVLogLevel)

Member VariableTypeDefaultDescription
SINFOuint8_t0Log level SINFO
SWARNINGuint8_tLog level SWARNING
SERRORuint8_tLog level SERROR
SDEBUGuint8_tLog level SDEBUG
SOFFuint8_tLog level SOFF (log disabled)

Task Phase (Enum SPhase)

Member VariableTypeDefaultDescription
OPEN_CAMERA_ING_ENUM11start camera loading
OPEN_CAMERA_SUC_ENUM22start camera successfully
OPEN_CAMERA_FAIL_ENUM33start camera failed
LOAD_MODEL_ING_ENUM44model loading
LOAD_MODEL_SUC_ENUM55model loaded successfully
LOAD_MODEL_FAIL_ENUM66Model load failed
WAIT_IMAGE_ING_ENUM77waiting for image

Callback Function GetImageCB

APItypedef std::function<int8_t(const Image & , const SVSdkMemfdInfo &)> GetImageCB
DescriptionUsed as input parameter for open() function to acquire image resources. This function is user-defined. The interface only provides type definition to standardize the callback function definition.
ParametersFirst parameter is an Image struct instance through which data is passed. Second parameter is an SVSdkMemfdInfo struct containing buffer index, YUV data width/height, etc.
Return ValueUser-defined

Example:

cpp
// Callback function definition
int8_t my_get_img_cb(const Image & cap_img, const SVSdkMemfdInfo & mem_info)
{
    ......
    return 0;
}

Get Signal Output Configuration (Function get_signal_sending_mode)

APIint8_t get_signal_sending_mode(IOConfig & iosetting, TcpConfig & tcpsetting)
DescriptionGet signal output configuration. Determine whether IO or TCP configuration is returned based on the return value. If return value is 1, IO configuration is returned from iosetting object.
Parametersiosetting: IOConfig instance containing IO output information. tcpsetting: TcpConfig instance containing TCP output information.
Return Value-1: Failed to get configuration. 0: Configuration is OFF (not set). 1: IO configuration returned from iosetting. 2: TCP configuration returned from tcpsetting.

Example:

cpp
// Get signal output configuration
IOConfig iosetting;
TcpConfig tcpsetting;
int8_t res = get_signal_sending_mode(iosetting, tcpsetting);

Set IO Signal Output Configuration (Function set_io_signal_send_mode)

APIint8_t set_io_signal_send_mode(SignalType do1, SignalType do2, uint32_t do1_keeptime = 0, uint32_t do2_keeptime = 0)
DescriptionSet IO signal output configuration. For example, setting do1 to NG_SIGNAL means pin 1 can only send NG signals. Note that pin 1 and pin 2 cannot be set to the same signal type simultaneously.
Parametersdo1: Pin 1. do2: Pin 2. do1_keeptime: Signal 1 duration (default 0). do2_keeptime: Signal 2 duration (default 0)
Return Value-1: Failure. 0: Success

Example:

cpp
// Set IO signal output mode
SignalType do2 = NG_SIGNAL;
SignalType do1 = ALARM_SIGNAL;
uint32_t ng_keeptime = 6;
int8_t res = set_io_signal_send_mode(do1, do2, ng_keeptime);

Set TCP Signal Output Configuration (Function set_tcp_signal_send_mode)

APIint8_t set_tcp_signal_send_mode(const char* ip, uint16_t port)
DescriptionSet TCP signal output configuration. The IP address and port are for the server side.
Parametersip: Server IP address. port: Server port number
Return Value-1: Failure. 0: Success

Example:

cpp
// Set TCP signal output mode
int8_t res = set_tcp_signal_send_mode(ip, port);

Set OFF Mode (Function set_off_mode)

APIint8_t set_off_mode()
DescriptionSet OFF mode to disable signal output.
ParametersNone
Return Value-1: Failure. 0: Success

Example:

cpp
// Set OFF mode to disable signal output
int8_t res = set_off_mode();

Send NG Signal via IO (Function io_send_ng)

APIint8_t io_send_ng()
DescriptionSend NG signal via IO.
ParametersNone
Return Value-1: Failure. 0: Success

Example:

cpp
// Send NG signal via IO
int8_t res = io_send_ng();

Send Alarm Signal via IO (Function io_send_alarm_raising)

APIint8_t io_send_alarm_raising()
DescriptionSend alarm signal via IO.
ParametersNone
Return Value-1: Failure. 0: Success

Example:

cpp
// Send alarm signal via IO
int8_t res = io_send_alarm_raising();

Send Alarm Clear Signal via IO (Function io_send_alarm_clear)

APIint8_t io_send_alarm_clear()
DescriptionSend alarm clear signal via IO.
ParametersNone
Return Value-1: Failure. 0: Success

Example:

cpp
// Send alarm clear signal via IO
int8_t res = io_send_alarm_clear();

Send NG Signal via TCP (Function tcp_send_ng)

APIint8_t tcp_send_ng()
DescriptionSend NG signal via TCP.
ParametersNone
Return Value-1: Failure. 0: Success

Example:

cpp
// Send NG signal via TCP
int8_t res = tcp_send_ng();

Send Alarm Signal via TCP (Function tcp_send_alarm)

APIint8_t tcp_send_alarm()
DescriptionSend alarm signal via TCP.
ParametersNone
Return Value-1: Failure. 0: Success

Example:

cpp
// Send alarm signal via TCP
int8_t res = tcp_send_alarm();

Send Alarm Clear Signal via TCP (Function tcp_send_alarmclear)

APIint8_t tcp_send_alarmclear()
DescriptionSend alarm clear signal via TCP.
ParametersNone
Return Value-1: Failure. 0: Success

Example:

cpp
// Send alarm clear signal via TCP
int8_t res = tcp_send_alarmclear();

Save Analysis Result (Function save_result)

APIint8_t save_result(const char *release_id, const char *release_version, const char *origin_file, const char *mask_file, const char *final_file, const char *additional = "")
DescriptionPackage image analysis task result file paths and additional information as JSON and report to local SVE service.
Parametersrelease_id: Release/task ID. release_version: Version number. origin_file: Original image file path. mask_file: Mask image file path. final_file: Final result image file path. additional: Additional JSON string (can be empty).
Return Value0: Success. -1: Failure.

Example:

cpp
int8_t ret = save_result(
    "task_123",                    // release_id
    "v1.0",                        // release_version
    "/tmp/origin.jpg",             // origin_file
    "/tmp/mask.png",               // mask_file
    "/tmp/final.jpg",              // final_file
    "{\"defect_size\":23.5,\"confidence\":0.98}"  // additional (JSON string)
);

Send Task Phase Notification (Function notify_sve)

APIint8_t notify_sve(SPhase phase_enum)
DescriptionSend current task phase notification to local SVE service via HTTP (POST) request.
Parametersphase_enum: Task phase enum value, including PHASE_IDLE, PHASE_START, PHASE_END.
Return Value0: Success. -1: Failure.

Example:

cpp
int8_t ret = notify_sve(PHASE_START);

Signal Type Definition (Enum SignalType)

Member VariableTypeDefaultDescription
OFFuint8_t0Disable signal output
NG_SIGNALuint8_tNG signal output mode
ALARM_SIGNALuint8_tAlarm signal output mode
OK_SIGNALuint8_tOK signal output mode

Convert YUV to BGR Format

APIbool yuv_to_bgr(cv::Mat &destMat, int srcSliceHeight, int srcYPlaneStride, int planeOffset, void *memdata)
DescriptionConvert YUV format data to BGR format. Output converted data through the destMat parameter.
ParametersNone
Return Valuefalse: Failure. true: Success

Convert YUV to BGR Format (Function yuv_to_bgr_y)

APIbool yuv_to_bgr_y(cv::Mat &destMat, int srcSliceHeight, int srcYPlaneStride, int planeOffset, void *memdata)
DescriptionConvert YUV format data to BGR format. Output converted data through the destMat parameter. Compared to yuv_to_bgr, this function only converts Y plane data (grayscale, single channel).
ParametersNone
Return Valuefalse: Failure. true: Success

Get SDK Version (Function get_build_version)

APIconst char *get_build_version()
DescriptionGet SDK version information.
ParametersNone
Return ValueSDK version string

Example:

cpp
// Get SDK version information
const char* res = get_build_version();

Get Latest Log (Function log_last_msg)

APIconst char* log_last_msg(SVLogLevel log_level)
DescriptionGet latest log message.
ParametersSVLogLevel log level
Return ValueLatest log record

Example:

cpp
// Get latest log message
const char* res = log_last_msg(log_level);

Get FPS (Function get_fps)

APIdouble get_fps(int idx)
DescriptionGet real-time FPS from callback function, which represents the camera capture frame rate.
Parametersidx: Camera index. Range: 0~2 for MIPI cameras. Default is 0.
Return ValueFPS value

Example:

cpp
// Get real-time camera capture FPS
double fps_v = get_fps();

Configure MIPI Camera (Function configure_camera)

APIint8_t configure_camera(const char *file_path, bool set_property = false, bool validation = true)
DescriptionSet camera parameters.
Parametersfile_path: Configuration file. set_property: Apply immediately (true: yes, false: no). validation: Validate parameters (true: yes, false: no)
Return Value0: Success. -1: Failure

Example:

cpp
// Configure camera parameters
int8_t res = Aidlux::SmartVision::configure_camera("./param.json", true, true);

Get MIPI Camera Configuration (Function get_camera_setting)

APIconst char *get_camera_setting(int idx)
DescriptionGet camera configuration parameters.
Parametersidx: Camera index. Default is 0. Currently, use default value without input.
Return ValueJSON format string

Example:

cpp
// Get camera configuration parameters
const char* res = get_camera_setting();

Enable MIPI Camera Full Size (Function fullsize_enable)

APIint fullsize_enable(bool enable)
DescriptionEnable MIPI camera full size configuration.
Parametersenable: true to enable, false to disable.
Return Value0: Success. -1: Failure

Example:

cpp
// Enable MIPI camera fullsize configuration
int res = fullsize_enable(true);

Set MIPI Camera Binning Mode (Function set_binning_mode)

APIint set_binning_mode(int mode)
DescriptionSet binning mode.
Parametersmode: 1: Select nearest binning mode, 2: Select 2x2 binning mode. MIPI camera default is 0, equivalent to mode 1.
Return Value0: Success. -1: Failure

Example:

cpp
// Set camera binning mode
int res = set_binning_mode(1);

Query MIPI Camera Fullsize Parameter (Function query_fullsize)

APIstring query_fullsize()
DescriptionQuery fullsize value.
ParametersNone
Return ValueFullsize parameter as string

Example:

cpp
// Get camera fullsize configuration
string res = query_fullsize();

Query MIPI Camera Binning Mode (Function query_binning_mode)

APIstring query_binning_mode()
DescriptionQuery binning mode.
ParametersNone
Return ValueBinning mode as string

Example:

cpp
// Get camera binning mode configuration
string res = query_binning_mode();

Get All Camera IDs (Function get_all_cam_ids)

APIstd::vector<std::string> get_all_cam_ids()
DescriptionGet all available camera IDs.
ParametersNone
Return ValueVector of strings, each string is a camera ID.

Example:

cpp
std::vector<std::string> cam_ids = Aidlux::SmartVision::get_all_cam_ids();

Get All Camera Indices (Function get_all_cam_index)

APIstd::vector<int> get_all_cam_index()
DescriptionGet all available camera indices.
ParametersNone
Return ValueVector of integers, each integer is a camera index.

Example:

cpp
std::vector<int> cam_indices = Aidlux::SmartVision::get_all_cam_index();

Get Camera Index by ID (Function get_cam_index)

APIint get_cam_index(std::string cam_id)
DescriptionConvert camera ID to camera index.
Parameterscam_id: Camera ID string
Return ValueCamera index.

Example:

cpp
int index = Aidlux::SmartVision::get_cam_index("camera_0");

Get Camera ID by Index (Function get_cam_id)

APIstd::string get_cam_id(int cam_index)
DescriptionConvert camera index to camera ID.
Parameterscam_index: Camera index
Return ValueCamera ID string.

Example:

cpp
std::string id = Aidlux::SmartVision::get_cam_id(0);

Get Photo File Address (Function get_photo_file_addr)

APIint8_t get_photo_file_addr(std::vector<std::string> &pic_path, int idx = 0)
DescriptionGet photo file paths for HDR feature.
Parameterspic_path: Output vector to store file paths. idx: Camera index (default 0).
Return Value0: Success. -1: Failure. -2: Failure.

Example:

cpp
std::vector<std::string> paths;
int8_t res = Aidlux::SmartVision::get_photo_file_addr(paths, 0);

Get Photo BGR (Function get_photo_bgr)

APIcv::Mat get_photo_bgr(int idx = 0)
DescriptionGet photo data in BGR format for HDR feature.
Parametersidx: Camera index (default 0).
Return Valuecv::Mat object containing BGR image data.

Example:

cpp
cv::Mat img = Aidlux::SmartVision::get_photo_bgr(0);

Get Photo JPG (Function get_photo_jpg)

APIint8_t get_photo_jpg(const char *file_path, int idx = 0)
DescriptionSave photo as JPG file for HDR feature.
Parametersfile_path: Output file path. idx: Camera index (default 0).
Return Value0: Success. 1: Failure.

Example:

cpp
int8_t res = Aidlux::SmartVision::get_photo_jpg("/tmp/photo.jpg", 0);

Get Analog Gain (Function get_analog_gain)

APIfloat get_analog_gain()
DescriptionGet current analog gain value.
ParametersNone
Return ValueAnalog gain value. 0.0: Failure.

Example:

cpp
float gain = Aidlux::SmartVision::get_analog_gain();

Get Digital Gain (Function get_digital_gain)

APIfloat get_digital_gain()
DescriptionGet current digital gain value.
ParametersNone
Return ValueDigital gain value. 0.0: Failure.

Example:

cpp
float gain = Aidlux::SmartVision::get_digital_gain();

Set Gain (Function set_gain)

APIint set_gain(float analog_gain, float digital_gain)
DescriptionSet analog and digital gain values.
Parametersanalog_gain: Analog gain value. digital_gain: Digital gain value.
Return Value0: Success. -1: Failure.

Example:

cpp
int res = Aidlux::SmartVision::set_gain(1.5f, 1.0f);

Distortion Calibration (Function distortion_calibration)

APIcv::Mat distortion_calibration(const std::vector<cv::Mat>& images, cv::Size boardSize, cv::Mat& cameraMatrix, float squareSize)
DescriptionPerform distortion calibration using multiple chessboard images.
Parametersimages: Vector of calibration images. boardSize: Chessboard pattern size. cameraMatrix: Output camera matrix. squareSize: Chessboard square size.
Return ValueDistortion coefficients matrix.

Example:

cpp
std::vector<cv::Mat> calib_images;
cv::Mat cameraMatrix;
cv::Mat distCoeffs = Aidlux::SmartVision::distortion_calibration(calib_images, cv::Size(9, 6), cameraMatrix, 0.02f);

Distortion Correction (Function distortion_correction)

APIcv::Mat distortion_correction(const cv::Mat &img, const cv::Mat &distCoeffs, cv::Mat &cameraMatrix)
DescriptionCorrect image distortion using calibration parameters.
Parametersimg: Input image. distCoeffs: Distortion coefficients. cameraMatrix: Camera matrix.
Return ValueCorrected image.

Example:

cpp
cv::Mat corrected = Aidlux::SmartVision::distortion_correction(img, distCoeffs, cameraMatrix);

White Balance Calibration (Function white_balance_calibration)

APIcv::Vec3f white_balance_calibration(const cv::Mat& img)
DescriptionCalculate white balance calibration coefficients from image.
Parametersimg: Input image.
Return ValueRGB gain coefficients.

Example:

cpp
cv::Vec3f gains = Aidlux::SmartVision::white_balance_calibration(img);

White Balance Correction (Function white_balance_correction)

APIcv::Mat white_balance_correction(const cv::Mat& img, const cv::Vec3f& calibCoeff)
DescriptionAdjust image white balance using calibration coefficients.
Parametersimg: Input image. calibCoeff: White balance calibration coefficients.
Return ValueWhite balance corrected image.

Example:

cpp
cv::Mat corrected = Aidlux::SmartVision::white_balance_correction(img, gains);

Get Mode Value (Function get_mode_value)

APIint8_t get_mode_value()
DescriptionGet current signal output mode.
ParametersNone
Return Value0: OFF, 1: IO_MODE, 2: TCP_MODE, 3: MODBUS_MODE, 4: UART_MODE, -1: Failure.

Example:

cpp
int8_t mode = Aidlux::SmartVision::get_mode_value();

IO Send (Function io_send)

APIint8_t io_send(std::string io_str, std::string io_control_file)
DescriptionWrite string to specific IO control file.
Parametersio_str: String to write. io_control_file: Path to IO control file.
Return Value0: Success. -1: Failure.

Example:

cpp
int8_t res = Aidlux::SmartVision::io_send("1", "/sys/aidlux/io_out/output_1p");

Task Phase Type Definition (Enum SPhase)

Member VariableValueDescription
OPEN_CAMERA_ING_ENUM11Opening camera in progress
OPEN_CAMERA_SUC_ENUM22Camera opened successfully
OPEN_CAMERA_FAIL_ENUM33Camera open failed
LOAD_MODEL_ING_ENUM44Loading model in progress
LOAD_MODEL_SUC_ENUM55Model loaded successfully
LOAD_MODEL_FAIL_ENUM66Model load failed
WAIT_IMAGE_ING_ENUM77Waiting for image

Camera Trigger Mode (Enum CameraTriggerMode)

Member VariableValueDescription
INVALID_TRIGGER_MODE_ENUM00Invalid trigger mode
INTERNAL_TRIGGER_MODE_ENUM11Internal trigger mode
EXTERNAL_TRIGGER_MODE_ENUM22External hardware trigger mode
SOFTWARE_TRIGGER_MODE_ENUM33Software trigger mode

Camera Parameter Mode (Enum CameraParamMode)

Member VariableValueDescription
WITH_PARAM_MODE0With parameters
WITHOUT_PARAM_MODE1Without parameters

Signal Mode (Enum SignalMode)

Member VariableValueDescription
IO_MODE0IO signal mode
TCP_MODE1TCP signal mode
MODBUS_MODE2MODBUS signal mode
UART_MODE3UART signal mode

Struct USBCamera

Member VariableTypeDescription
usb_typeintUSB type (0: None, 2: USB 2.0, 3: USB 3.0)
widthintImage width
heightintImage height
fpsintFrame rate
bus_idstd::stringBus ID
vendor_idstd::stringVendor ID
device_idstd::stringDevice ID
product_idstd::stringProduct ID
vendor_product_idstd::stringVendor product ID
manufacturerstd::stringManufacturer name
video_pathstd::stringVideo device path
resolutionstd::stringResolution string
creation_timestampstd::stringCreation timestamp
buffers[4]void*Memory-mapped buffer pointers
size[4]intBuffer sizes
config_pathstd::stringConfiguration file path
video_liststd::vectorstd::stringList of video paths

Struct HIKCamera

Member VariableTypeDescription
widthintImage width
heightintImage height
fpsintFrame rate
trigger_modeintTrigger mode (0: continuous, 1: software)
config_pathstd::stringConfiguration file path

Struct CameraParam

Member VariableTypeDescription
camera_typeCameraTypeCamera type
exposure_timeuint64_tExposure time in microseconds
gainfloatGain value
widthintImage width
heightintImage height
cintNumber of channels
fpsintFrame rate
trigger_modeCameraTriggerModeTrigger mode
resolution_arraystd::vectorstd::stringSupported resolutions list
resolution_idxuint8_tCurrent resolution index
horizontal_flipboolHorizontal flip enabled
vertical_flipboolVertical flip enabled

Additional Public APIs

The following APIs are public in V1 source code and are listed here as a quick index.

APIDescription
const char *get_build_meta(void)Get build metadata (for example, build timestamp).
const char *get_build_id(void)Get the Git hash of the current build.
bool is_process_running(pid_t processId)Check whether the specified process ID is still running.
bool check_camera_running_status()Check running status of the default camera.
bool check_camera_running_status(int idx)Check running status of the camera by index.
void init_log_configuration()Initialize real-time log configuration.
void start_log_callback()Start log-configuration callback listener.
void svsdk_notification_callback(const std::string &event, const std::string &module, const std::string &message)Entry point for SDK notification callback handling.
void set_log_level(SVLogLevel log_level, std::string logger_name)Set log level for a specified logger name.
std::string get_global_logger()Get global logger name.
int8_t save_result(const char *release_id, const char *release_version, const char *origin_file, const char *mask_file, const char *final_file, const char *additional = "")Report source/mask/result files and optional metadata to the local service.
int8_t save_result(const char *release_id, const char *release_version, const char *srcAddr = "./", const char *dstAddr = "/var/opt/aidlux/global/")Package result directory by release info and output to the target path.
int8_t notify_sve(SPhase phase_enum)Report current task phase to SVE.
int8_t get_usb_camera_type()Get current USB camera type (0/2/3).
int get_dst_width() / int get_dst_width(int idx)Get target output width.
int get_dst_height() / int get_dst_height(int idx)Get target output height.
cv::Mat read_image(const std::string& image_path)Read an image file into an OpenCV Mat.
std::array<std::array<double, 3>, 3> computeCCM3x3FromImage(const cv::Mat &bgr, const cv::Point2f corners[4], double innerScale = 0.5)Compute a 3x3 CCM from color-card image data (each row sums to 1).
std::array<int, 18> ccmToAndroidColorTransform(const cv::Mat &bgr, const cv::Point2f corners[4], int denom = 10000, double innerScale = 0.5)Convert CCM to Android color-transform parameters.
cv::Mat get_cvimage(const Image &img, int idx = 0)Convert SDK Image object to cv::Mat.
bool is_bgr(const cv::Mat &image)Check whether an image is in BGR format.
cv::Mat get_roi_pic(const cv::Mat &obj, const cv::Rect &location)Crop image by ROI rectangle.
int8_t io_send_ng_clear()Send NG-clear signal via IO.
int8_t io_send_ok()Send OK signal via IO.
int8_t io_send_ok_clear()Send OK-clear signal via IO.
int8_t io_send_alarm(std::string alarm_message)Send alarm signal with custom message via IO.
int8_t tcp_send(std::string message)Send custom message via TCP.
bool isIPFormat(const char* str)Check whether a string is a valid IP format.
bool isFileExists(const std::string& filePath)Check whether a file exists.
bool createNewSignalFile(const std::string& filePath)Create a new signal configuration file.

RS485_IO Class

Singleton class for RS485 IO control.

APIDescription
static RS485_IO &getInstance()Get singleton instance
int8_t send_do1()Send DO1 raise command (COM0)
int8_t send_do1_clear()Send DO1 clear command (COM0)
int8_t send_do2()Send DO2 raise command (COM1)
int8_t send_do2_clear()Send DO2 clear command (COM1)

Example:

cpp
RS485_IO &io = RS485_IO::getInstance();
io.send_do1();

IO Class

Static class for IO operations.

SendNGType Enum

Member VariableValueDescription
INVALID_NG_TYPE0Invalid type
IO_NG_TYPE1IO NG type
MODBUS_NG_TYPE2MODBUS NG type
TCP_NG_TYPE3TCP NG type

SendNGConfig Struct

Member VariableTypeDescription
vol_timeuint32_tVoltage duration (for IO)
reg_addruint32_tRegister address (for MODBUS)
ipstd::stringIP address (for TCP)
portuint16_tPort number (for TCP)