Skip to content

Smart Vision Python 接口文档

Smart Vision Python API

tip

To use the Smart Vision SDK, first import the smartvisionsdk package:

from pysmartvision import smartvisionsdk

Python API Overview

ClassPublic Member FunctionsTypeDescription
Cameraopen(GetImageCB)functionOpen camera in parameterless mode
open(DeviceParam, GetImageCB)functionOpen camera with parameters
start_capture()functionStart streaming
stop_capture()functionStop streaming
close()functionClose camera
set_camera_type(CameraType camera_type)functionSet camera type. Supported types: MIPI_CAMERA_ENUM1 / USB_CAMERA_ENUM2 / USB_CAMERA_ENUM3. Default is MIPI.
DeviceParamcfg_namestrPath to parameter configuration file
ImagedatastrPointer to buffer containing image data
wintTarget image width
hintTarget image height
cintNumber of image channels (typically 3)
lengthintMemory length occupied by image data
IOConfigdo1_keeptimeintSignal 1 duration
do2_keeptimeintSignal 2 duration
do1SignalTypePin 1
do2SignalTypePin 2
TcpConfigipstrIP address
portintPort number
SVSdkMemfdInfosrcYPlaneStrideintWidth of YUV data
srcSliceHeightintHeight of YUV data
memCopyStartIndexintStart index value (Note: Start index equals End index)
memCopyEndIndexintEnd index value
planeOffsetintYUV offset value
Public FunctionDescription
set_log_level(SVLogLevel log_level)Set log level
set_log_destination(str destinationPath, bool also_to_stderr)Set log file name and path
log_to_stderr()Output logs to terminal. Once set, log files will not be saved. Generally not recommended.
GetImageCB(const Image, const SVSdkMemfdInfo)Used 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.
get_signal_sending_mode(IOConfig, TcpConfig)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.
set_io_signal_send_mode(SignalType, SignalType, int, int)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.
set_tcp_signal_send_mode(str, int)Set TCP signal output configuration. The IP address and port are for the server side.
set_off_mode()Set OFF mode to disable signal output.
io_send_ng()Send NG signal via IO.
io_send_alarm_raising()Send alarm signal via IO.
io_send_alarm_clear()Send alarm clear signal via IO.
tcp_send_ng()Send NG signal via TCP.
tcp_send_alarm()Send alarm signal via TCP.
tcp_send_alarmclear()Send alarm clear signal via TCP.
EnumMember VariableTypeDescription
SVLogLevelSINFOintLog level SINFO
SWARNINGintLog level SWARNING
SERRORintLog level SERROR
SDEBUGintLog level SDEBUG
SOFFintLog level SOFF (log disabled)
SignalTypeOFFintDisable signal output
NG_SIGNALintNG signal output mode
ALARM_SIGNALintAlarm signal output mode
OK_SIGNALintOK signal output mode
CameraTypeMIPI_CAMERA_ENUM1intMIPI camera
USB_CAMERA_ENUM2intGeneric USB camera
USB_CAMERA_ENUM3intHikvision 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

Unlike C++, Python code does not require namespace import. Instead, import the smartvisionsdk module using:

from pysmartvision import smartvisionsdk

See the following interfaces for specific usage.

Open Camera (Parameterless Mode)

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

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

python
# Open camera in parameterless mode
camera_instance = smartvisionsdk.Camera()
res = camera_instance.open(get_img_cb)

Open Camera (With Parameters)

APIopen(dev_param, cb)
DescriptionOpen camera with parameters.
Parametersdev_param: Instance of DeviceParam class. cb: Callback function. Callback function is user-defined. See Callback Function for details.
Return Value0: Success. -1: Failure.

Example:

python
# Open camera with parameters
camera_instance = smartvisionsdk.Camera()
res = camera_instance.open(device_param, get_img_cb)

Start Streaming

APIstart_capture()
DescriptionStart streaming
ParametersNone
Return ValueNone

Example:

python
# Start streaming
camera_instance.start_capture()

Stop Streaming

APIstop_capture()
DescriptionStop streaming
ParametersNone
Return ValueNone

Example:

python
# Stop streaming
camera_instance.stop_capture()

Close Camera (Function close)

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

Example:

python
# Close camera
res = camera_instance.close()

Set Camera Type (Function set_camera_type)

APIset_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:

python
# Set camera type to Hikvision camera
camera_instance.set_camera_type(smartvisionsdk.USB_CAMERA_ENUM3)

DeviceParam Class

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

Member VariableTypeDefaultDescription
cfg_namestrPath to parameter configuration file

Set DeviceParam Configuration File

APIset_cfgname(config_file)
DescriptionSet path to parameter configuration file. This interface sets the cfg_name variable.
Parametersconfig_file: Camera parameter configuration file
Return ValueNone

Example:

python
# Set configuration file
device_param = smartvisionsdk.DeviceParam()
device_param.set_cfgname("./config.json")

Image Class

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

Member VariableTypeDefaultDescription
datastrString pointer to buffer containing data
wintTarget image width
hintTarget image height
cintNumber of image channels (typically 3)
lengthintMemory length occupied by image data

IOConfig Class

Defines IO signal output configuration.

Member VariableTypeDefaultDescription
do1_keeptimeintSignal 1 duration
do2_keeptimeintSignal 2 duration
do1SignalTypePin 1
do2SignalTypePin 2

TcpConfig Class

Defines TCP signal output configuration.

Member VariableTypeDefaultDescription
ipstrIP address
portintPort number

SVSdkMemfdInfo Class

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

Set Log Level (Function set_log_level)

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

Example:

python
# Set log level
smartvisionsdk.set_log_level(smartvisionsdk.SVLogLevel.SINFO)

Set Log File Name and Path (Function set_log_destination)

APIset_log_destination(destinationPath, 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:

python
# Set log file name and path
log_path = "./aidclog_smart_vision_setting_"
smartvisionsdk.set_log_destination(log_path, False)

Output Logs to Terminal (Function log_to_stderr)

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

Example:

python
# Output logs to terminal
smartvisionsdk.log_to_stderr()

Log Level (Enum SVLogLevel)

Member VariableTypeDefaultDescription
SINFOint0Log level SINFO
SWARNINGintLog level SWARNING
SERRORintLog level SERROR
SDEBUGintLog level SDEBUG
SOFFintLog level SOFF (log disabled)

Callback Function GetImageCB

APIGetImageCB(image, mem_info)
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 class instance through which data is passed. Second parameter is an SVSdkMemfdInfo class instance containing buffer index, YUV data width/height, etc.
Return ValueUser-defined

Example:

python
# Callback function definition
def get_img_cb(cap_img, mem_info):
    ......
    return 0

Get Signal Output Configuration (Function get_signal_sending_mode)

APIget_signal_sending_mode(iosetting, 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:

python
# Get signal output configuration
iosetting = smartvisionsdk.IOConfig()
tcpsetting = smartvisionsdk.TcpConfig()
res = smartvisionsdk.get_signal_sending_mode(iosetting, tcpsetting)

Set IO Signal Output Configuration (Function set_io_signal_send_mode)

APIset_io_signal_send_mode(do1, do2, do1_keeptime, do2_keeptime)
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. do2_keeptime: Signal 2 duration
Return Value-1: Failure. 0: Success

Example:

python
# Set IO signal output mode
res = smartvisionsdk.set_io_signal_send_mode(smartvisionsdk.SignalType.NG_SIGNAL, smartvisionsdk.SignalType.ALARM_SIGNAL, 6, 0)

Set TCP Signal Output Configuration (Function set_tcp_signal_send_mode)

APIset_tcp_signal_send_mode(ip, 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:

python
# Set TCP signal output mode
res = smartvisionsdk.set_tcp_signal_send_mode(ip, port)

Set OFF Mode (Function set_off_mode)

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

Example:

python
# Set OFF mode to disable signal output
res = smartvisionsdk.set_off_mode()

Send NG Signal via IO (Function io_send_ng)

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

Example:

python
# Send NG signal via IO
res = smartvisionsdk.io_send_ng()

Send Alarm Signal via IO (Function io_send_alarm_raising)

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

Example:

python
# Send alarm signal via IO
res = smartvisionsdk.io_send_alarm_raising()

Send Alarm Clear Signal via IO (Function io_send_alarm_clear)

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

Example:

python
# Send alarm clear signal via IO
res = smartvisionsdk.io_send_alarm_clear()

Send NG Signal via TCP (Function tcp_send_ng)

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

Example:

python
# Send NG signal via TCP
res = smartvisionsdk.tcp_send_ng()

Send Alarm Signal via TCP (Function tcp_send_alarm)

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

Example:

python
# Send alarm signal via TCP
res = smartvisionsdk.tcp_send_alarm()

Send Alarm Clear Signal via TCP (Function tcp_send_alarmclear)

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

Example:

python
# Send alarm clear signal via TCP
res = smartvisionsdk.tcp_send_alarmclear()

Signal Type Definition (Enum SignalType)

Member VariableTypeDefaultDescription
OFFint0Disable signal output
NG_SIGNALintNG signal output mode
ALARM_SIGNALintAlarm signal output mode
OK_SIGNALintOK signal output mode

Get SDK Version (Function get_build_version)

APIget_build_version()
DescriptionGet SDK version information.
ParametersNone
Return ValueSDK version string

Example:

python
# Get SDK version information
res = smartvisionsdk.get_build_version()

Get Mat Object Data

APIget_cvimage(image)
DescriptionGet Mat object data. Only available in Python version. This interface can directly return converted cv Mat object data.
Parametersimage: Input image object
Return ValueMat object data

Example:

python
# Get Mat object data, where cap_img is the input Mat object containing YUV data
im = smartvisionsdk.get_cvimage(cap_img)

Get Latest Log (Function log_last_msg)

APIlog_last_msg(log_level)
DescriptionGet latest log message
ParametersSVLogLevel log level
Return ValueLatest log record

Example:

python
# Get latest log message
res = smartvisionsdk.log_last_msg(log_level)

Get FPS (Function get_fps)

APIget_fps(idx)
DescriptionGet real-time FPS from callback function, which represents the camera capture frame rate.
ParametersCamera index idx. MIPI camera: 0~2, Generic USB camera: 7, Hikvision USB camera: 8. Default is 0.
Return ValueFPS value

Example:

python
# Get real-time camera capture FPS
fps_v = smartvisionsdk.get_fps()

Configure MIPI Camera (Function configure_camera)

APIconfigure_camera(file_path, set_property, validation)
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:

python
# Configure camera parameters
res = smartvisionsdk.configure_camera("./param.json", True, True)

Enable MIPI Camera Full Size (Function fullsize_enable)

APIfullsize_enable(enable)
DescriptionEnable MIPI camera full size configuration.
Parametersenable: True to enable, False to disable.
Return Value0: Success. -1: Failure

Example:

python
# Enable MIPI camera fullsize configuration
res = smartvisionsdk.fullsize_enable(True)

Set MIPI Camera Binning Mode (Function set_binning_mode)

APIset_binning_mode(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:

python
# Set camera binning mode
res = smartvisionsdk.set_binning_mode(1)

Query MIPI Camera Fullsize Parameter (Function query_fullsize)

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

Example:

python
# Get camera fullsize configuration
res = smartvisionsdk.query_fullsize()

Query MIPI Camera Binning Mode (Function query_binning_mode)

APIquery_binning_mode()
DescriptionQuery binning mode.
ParametersNone
Return ValueBinning mode as string

Example:

python
# Get camera binning mode configuration
res = smartvisionsdk.query_binning_mode()