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