六、使用示例
1、Hello ZED
打开和配置ZED,打印其序列号,然后关闭相机。
使用ZED首先要创建并打开一个Camera对象。
ZED API可用于两种不同的视频输入:ZED实时视频(实时模式)或用ZED API(播放模式)录制的SVO格式视频文件。
(1)配置相机
需要创建一个和camera对象并指定InitParameters。初始参数可以设置相机分辨率,FPS,深度感知参数等等。这些参数只能在打开相机之前设置,并且不能在相机的使用过程中改变。
# Create a ZED camera object
zed = sl.Camera()
# Set configuration parameters
init_params = sl.InitParameters()
init_params.camera_resolution = sl.RESOLUTION.HD1080
init_params.camera_fps = 30
InitParameters默认包含一种配置。
(2)打开相机
# Open the camera
err = zed.open(init_params)
if (err != sl.ERROR_CODE.SUCCESS):
exit(-1)
可以设置的初始参数:
相机配置参数 camera_(resolution, image flip...)SDK配置参数 sdk_(verbosity, GPU device used...)
深度配置参数 depth_(depth mode, minimum distance...)
坐标系配置参数 coordinate_(coordinate system, coordinate units...)
视频文件的SVO参数(filename, real-time mode...)
相机参数:
焦距:fx,fy
主点:cx,cy
镜头畸变:k1,k2
水平和垂直视野
立体标定:左眼和右眼之间的旋转和平移
这些值可以在CalibrationParameters(包含校准参数)中找到,使用get_camera_information()访问。
(3)检索相机的序列号
# Get camera information(serial number)
zed_serial = zed.get_camera_information().serial_number
print("Hello! This is my serial number: ", zed_serial)
(4)关闭相机
# Close the camera
zed.close()
return 0
完整程序
import pyzed.sl as sl
def main():
# Create a Camera object
zed = sl.Camera()
# Create a InitParameters object and set configuration parameters
init_params = sl.InitParameters()
init_params.sdk_verbose = False
# Open the camera
err = zed.open(init_params)
if err != sl.ERROR_CODE.SUCCESS:
exit(1)
# Get camera information (ZED serial number)
zed_serial = zed.get_camera_information().serial_number
print("Hello! This is my serial number: {0}".format(zed_serial))
# Close the camera
zed.close()
if __name__ == "__main__":
main()