using System.Threading.Tasks; using System.Windows; using TeamAAS.Camera.Images; namespace TeamAAS.Vision.Calibration.Interfaces { /// /// 标定视觉取点契约:由各视觉引擎插件(VisionPro/VM/Halcon)实现, /// 让标定算法与具体视觉库解耦——算法只"给图取点",引擎可整体替换。 /// /// 分层约定: /// - 契约只依赖通用图像类 与 WPF 基础类型,不依赖任何引擎 SDK; /// - 具体实现放在各引擎插件类库(如 Plugins.Vpp),SDK 只被插件引用; /// - 算法服务通过 VisualEngineManager.Instance.Current as ICalibrationVisionProvider 取用; /// 未实现本接口的引擎可回退到手动标定页。 /// public interface ICalibrationVisionProvider { /// 标定图像操作区(标定向导嵌入,随引擎切换)。 FrameworkElement GetCalibrationView(); /// /// 在图像上运行当前标定工具,返回找到的特征点(像素坐标)。 /// found=false 表示未找到;px/py 为像素坐标;angle 为特征朝向(度,无则 0)。 /// Task<(bool found, double px, double py, double angle)> FindCalibPoint(GenImage image); /// /// 畸变校正(可选)。默认实现原样返回;需要棋盘格校正的引擎自行实现。 /// Task Undistort(GenImage image); /// 当前标定工具的运行时句柄(引擎私有对象)。 object CurrentTool { get; } /// 当前标定工具的持久化引用(如 .vpp 路径)。 string ToolRef { get; set; } /// 从持久化引用加载标定工具;引用为空时加载引擎默认标定工具模板。 void LoadTool(string toolRef); /// 将当前标定工具保存到指定目录,返回可供 持久化的引用。 string SaveTool(string directory); } }