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; }
}