68 lines
2.3 KiB
Python
68 lines
2.3 KiB
Python
from pylablib.devices.Andor import AndorSDK3Camera
|
|
|
|
# 连接相机
|
|
cam = AndorSDK3Camera(idx=0)
|
|
cam.open()
|
|
print("已连接到相机")
|
|
|
|
# 测试1: 触发模式
|
|
print("\n=== 测试1: 触发模式 ===")
|
|
print(f"当前触发模式: {cam.get_trigger_mode()}")
|
|
cam.set_trigger_mode("int")
|
|
print(f"设置为内部触发: {cam.get_trigger_mode()}")
|
|
cam.setup_acquisition(mode="snap", nframes=1)
|
|
cam.start_acquisition()
|
|
cam.wait_for_frame()
|
|
frames = cam.read_multiple_images()
|
|
cam.stop_acquisition()
|
|
print(f"采集成功,图像尺寸: {frames[0].shape}")
|
|
|
|
# 测试2: 温度
|
|
print("\n=== 测试2: 温度设置 ===")
|
|
print(f"当前温度: {cam.get_temperature()} °C")
|
|
print(f"温度设定点: {cam.get_temperature_setpoint()} °C")
|
|
print(f"制冷器状态: {cam.is_cooler_on()}")
|
|
|
|
# 测试3: 帧周期
|
|
print("\n=== 测试3: 帧周期/帧率 ===")
|
|
print(f"当前帧周期: {cam.get_frame_period()} 秒")
|
|
frame_timings = cam.get_frame_timings()
|
|
print(f"曝光时间: {frame_timings[0]} 秒")
|
|
print(f"帧周期: {frame_timings[1]} 秒")
|
|
|
|
# 测试4: 曝光时间范围测试
|
|
print("\n=== 测试4: 不同曝光时间 ===")
|
|
exposure_times = [0.01, 0.05, 0.1]
|
|
for exp in exposure_times:
|
|
cam.set_exposure(exp)
|
|
actual_exp = cam.get_exposure()
|
|
print(f"设置曝光 {exp}s, 实际 {actual_exp}s")
|
|
cam.setup_acquisition(mode="snap", nframes=1)
|
|
cam.start_acquisition()
|
|
cam.wait_for_frame()
|
|
frames = cam.read_multiple_images()
|
|
cam.stop_acquisition()
|
|
print(f" 采集成功,图像尺寸: {frames[0].shape}")
|
|
|
|
# 测试5: 元数据
|
|
print("\n=== 测试5: 元数据 ===")
|
|
print(f"元数据启用: {cam.is_metadata_enabled()}")
|
|
|
|
# 测试6: ROI限制
|
|
print("\n=== 测试6: ROI限制 ===")
|
|
roi_limits = cam.get_roi_limits()
|
|
print(f"水平ROI限制: min={roi_limits[0].min}, max={roi_limits[0].max}, maxbin={roi_limits[0].maxbin}")
|
|
print(f"垂直ROI限制: min={roi_limits[1].min}, max={roi_limits[1].max}, maxbin={roi_limits[1].maxbin}")
|
|
|
|
# 测试7: 获取所有属性值
|
|
print("\n=== 测试7: 部分相机属性 ===")
|
|
all_attrs = cam.get_all_attribute_values()
|
|
important_attrs = ['CameraModel', 'SensorWidth', 'SensorHeight', 'PixelEncoding', 'BitDepth']
|
|
for attr in important_attrs:
|
|
if attr in all_attrs:
|
|
print(f"{attr}: {all_attrs[attr]}")
|
|
|
|
# 断开连接
|
|
cam.close()
|
|
print("\n已断开连接")
|