2026-06-05 13:44:39 +09:00

46 lines
1.8 KiB
C#

using System.Collections.Generic;
using System.Linq;
namespace VisionCommon {
/// <summary>
/// 센터로부터 각 패턴의 정위치까지 떨어진 거리 파라미터
/// </summary>
public class RefDistParam {
/// <summary>
/// 센터로부터 각 패턴의 정위치까지 떨어진 거리들
/// <para>
/// 이미지 좌표상으로 좌상단부터 우하단까지 0 ~ n-1 인덱스이며, RefOffsets가 null이면 센터를 기준으로 얼라인
/// </para>
/// </summary>
public Dictionary<int, RefDist> RefDists { get; set; }
/// <summary>찾은 패턴의 위치와 패턴의 정위치 간에 허용 거리. (Default : 3 mm)</summary>
public int DistanceTolerance { get; set; } = 3;
/// <summary>
/// 생성자
/// </summary>
/// <param name="refDists">센터로부터 각 패턴의 정위치까지 떨어진 거리들</param>
/// <param name="distanceTolerance">찾은 패턴의 위치와 패턴의 정위치 간에 허용 거리</param>
public RefDistParam(Dictionary<int, RefDist> refDists, int distanceTolerance = 3) {
this.RefDists = refDists?.ToDictionary(obj => obj.Key, obj => obj.Value);
this.DistanceTolerance = distanceTolerance;
}
}
/// <summary>
/// 센터로부터 각 패턴의 정위치까지 떨어진 거리
/// </summary>
public class RefDist {
/// <summary> 센터로부터 패턴 정위치까지 거리X </summary>
public double DistX { get; set; }
/// <summary> 센터로부터 패턴 정위치까지 거리Y </summary>
public double DistY { get; set; }
public RefDist() { }
public RefDist(double distX, double distY) {
this.DistX = distX;
this.DistY = distY;
}
}
}