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已断开连接")