using System.Drawing;
namespace XP.Calibration.Models;
///
/// 椭圆拟合结果 | Ellipse fitting result
///
public record EllipseResult
{
public PointF Center { get; init; }
public float LongAxis { get; init; }
public float ShortAxis { get; init; }
public float Angle { get; init; }
}
///
/// 几何参数 | Geometry parameters for CT system
///
public class GeoParams
{
/// 焦点到旋转中心距离 (mm) | Distance Source to Origin
public double DSO { get; set; }
/// 焦点到探测器距离 (mm) | Distance Source to Detector
public double DSD { get; set; }
/// 探测器像素大小 (mm) | Detector pixel size
public double PixelSize { get; set; }
/// 探测器水平像素数 | Detector horizontal pixel count
public int NDetecU { get; set; }
/// 探测器垂直像素数 | Detector vertical pixel count
public int NDetecV { get; set; }
}
///
/// 中心校准结果 | Center calibration result
///
public record CenterCalibrationResult
{
/// 椭圆拟合结果
public EllipseResult Ellipse { get; init; } = null!;
/// 倾斜角 (度) | Tilt angle in degrees
public double AlphaDeg { get; init; }
/// 反算半径 R (mm)
public double R_mm { get; init; }
/// 透视偏移量 (像素) | Perspective offset in pixels
public double DeltaPx { get; init; }
/// 修正后焦点投影 U 坐标
public double FocalU { get; init; }
/// 修正后焦点投影 V 坐标
public double FocalV { get; init; }
/// 各帧检测到的球心坐标
public List DetectedCenters { get; init; } = new();
}