Cognex 的 CogFitCircle 和 CogNPointToNPoint 类的简单测试
private void btn_Test_Click(object sender, RoutedEventArgs e)
{
CogFitCircle cogFitCircle = new CogFitCircle();
cogFitCircle.AddPoint(0, 10);
cogFitCircle.AddPoint(10, 0);
cogFitCircle.AddPoint(0, -10);
cogFitCircle.AddPoint(-10, 0);
CogFitCircleResult res = cogFitCircle.Execute("@");
CogCircle cogCircle = res.GetCircle();
MessageBox.Show($"cx = {cogCircle.CenterX:F3} cy = {cogCircle.CenterY:F3} r = {cogCircle.Radius}");
CogNPointToNPoint cogNP = new CogNPointToNPoint();
cogNP.AddPointPair(100, 100, 10, 10);
cogNP.AddPointPair(150, 100, 15, 10);
cogNP.AddPointPair(200, 100, 20, 10);
cogNP.AddPointPair(200, 150, 20, 15);
cogNP.AddPointPair(150, 150, 15, 15);
cogNP.AddPointPair(100, 150, 10, 15);
cogNP.AddPointPair(100, 200, 10, 20);
cogNP.AddPointPair(150, 200, 15, 20);
cogNP.AddPointPair(200, 200, 20, 20);
ICogTransform2D trans = cogNP.ComputeGroupAFromGroupBTransform(out double rmsError);
cogNP.ComputationMode = CogCalibFixComputationModeConstants.Linear;
cogNP.DOFsToCompute = CogNPointToNPointDOFConstants.ScalingAspectRotationSkewAndTranslation;
double or_x = 13, or_y = 14;
trans.MapPoint(or_x, or_y, out double x, out double y);
CogTransform2DLinear linear = trans as CogTransform2DLinear;
double r = linear.MapAngle(Math.PI);
MessageBox.Show($"or_x = {x:F3} or_y = {y:F3} r = {r:F3} RMSERROR = {rmsError}");
}
输出:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了