using System.Drawing; using System.Windows.Media.Imaging; namespace XP.Camera.Calibration; /// /// 标定采集服务接口 /// 提供"一键采集"能力:读取编码器坐标 + 拍图 + 识别标记中心 /// public interface ICalibrationCaptureService { /// 是否可用(相机已连接、运动系统就绪) bool IsAvailable { get; } /// /// 采集当前标定点 /// /// 采集结果,失败时返回 null CaptureResult? CaptureCurrentPoint(); /// /// 获取当前导航相机图像 /// BitmapSource? CaptureImage(); /// /// 启动实时预览(将相机实时画面推送到 LiveImageUpdated 事件) /// void StartLivePreview(); /// /// 停止实时预览 /// void StopLivePreview(); /// /// 实时画面更新事件 /// event EventHandler? LiveImageUpdated; } /// /// 实时画面事件参数 /// public class LiveImageEventArgs : EventArgs { public BitmapSource Image { get; } public LiveImageEventArgs(BitmapSource image) => Image = image; } /// /// 单次采集结果 /// public class CaptureResult { /// 标记中心像素坐标 X(亚像素) public double PixelX { get; set; } /// 标记中心像素坐标 Y(亚像素) public double PixelY { get; set; } /// 平台编码器坐标 X (mm) public double WorldX { get; set; } /// 平台编码器坐标 Y (mm) public double WorldY { get; set; } /// 采集的图像 public BitmapSource? Image { get; set; } /// 检测到的标记轮廓点集 public System.Drawing.Point[]? ContourPoints { get; set; } }