IMVSC2CMeasureModuCs 圆圆测量模块接口文档
概述
IMVSC2CMeasureModuCs
命名空间提供了一套用于测量图像中两个圆之间的角度、距离、交点和位置关系的接口。该模块适用于图像处理和计算机视觉任务,能够高效地检测和分析圆形特征。
命名空间
命名空间: IMVSC2CMeasureModuCs
详细描述:
圆圆测量模块接口可测量图像中两个圆之间的角度、距离、交点和位置关系。
类
1. C2CMeasureParam
类
描述: 圆圆测量参数类,用于配置圆检测和测量的参数。
Public 类型
以下枚举类型用于配置圆检测的行为:
-
FindMode1Enum
Best = 0x1
: 选择最强的边缘Largest = 0x2
: 选择最大的边缘Smallest = 0x3
: 选择最小的边缘
-
EdgePolarity1Enum
BlackToWhite = 0x1
: 从黑到白WhiteToBlack = 0x2
: 从白到黑Both = 0x3
: 任意极性
-
InitType1Enum
ALS = 0x1
: 全局初始拟合LLS = 0x2
: 局部初始拟合
-
FitFun1Enum
LS = 0x1
: 最小二乘拟合Huber = 0x2
: Huber 拟合Tukey = 0x3
: Tukey 拟合
-
FindMode2Enum, EdgePolarity2Enum, InitType2Enum, FitFun2Enum
与上述对应,用于配置第二个圆的参数,值和含义相同。
Public 属性
- InputImage:
ImageBaseData
输入图像,仅当次执行起效。 - InputCircleAnnulus1:
List<Annulus>
输入圆1,仅当次执行起效。 - InputCircleAnnulus2:
List<Annulus>
输入圆2,仅当次执行起效。 - FindMode1:
FindMode1Enum
边缘类型1。 - EdgePolarity1:
EdgePolarity1Enum
边缘极性1。 - EdgeThresh1:
int
边缘阈值1,范围:[1, 255]。 - EdgeWidth1:
int
滤波尺寸1,范围:[1, 50]。 - RejectNum1:
int
剔除点数1,范围:[0, 997]。 - CoarseDetectFlag1:
bool
初定位1。 - CCDSampleScale1:
int
下采样系数1,范围:[1, 8]。 - CCDCircleThresh1:
int
定位敏感度1,范围:[1, 1000]。 - RejectDist1:
int
剔除距离1,范围:[1, 1000]。 - InitType1:
InitType1Enum
初始拟合1。 - FitFun1:
FitFun1Enum
拟合方式1。 - FindMode2, EdgePolarity2, EdgeThresh2, EdgeWidth2, RejectNum2, CoarseDetectFlag2, CCDSampleScale2, CCDCircleThresh2, Reject.Dist2, InitType2, FitFun2
与上述对应,用于配置第二个圆的参数。 - AngleLimitEnable:
bool
角度判断开关。 - AngleLimitLow:
double
角度范围下限,范围:[-180, 180]。 - AngleLimitHigh:
double
角度范围上限,范围:[-180, 180]。 - DistLimitEnable:
bool
距离判断开关。 - DistLimitLow:
double
距离范围下限,范围:[0, 99999]。 - DistLimitHigh:
double
距离范围上限,范围:[0, 99999]。 - Inter1XLimitEnable, Inter1XLimitLow, Inter1XLimitHigh, Inter1YLimitEnable, Inter1YLimitLow, Inter1YLimitHigh
交点1的X和Y坐标判断开关及范围,范围:[-99999, 99999]。 - Inter2XLimitEnable, Inter2XLimitLow, Inter2XLimitHigh, Inter2YLimitEnable, Inter2YLimitLow, Inter2YLimitHigh
交点2的X和Y坐标判断开关及范围,范围:[-99999, 99999]。
2. C2CMeasureResult
类
描述: 圆圆测量结果类,存储测量结果。
Public 成员函数
- C2CMeasureResult()
构造函数。
属性
- ModuStatus:
int
模块状态。 - MeasureCircle1:
Circle
测量圆1。 - MeasureCircleAnnulus1:
Annulus
测量圆环1。 - MeasureCircle2:
Circle
测量圆2。 - MeasureCircleAnnulus2:
Annulus
测量圆环2。 - Intersection1:
PointF
交点1。 - Intersection2:
PointF
交点2。 - Angle:
float
角度。 - Dist:
float
距离。 - C2CType:
string
位置关系。 - DetectCaliperBox1:
List<RectBox>
卡尺检测区1。 - DetectCaliperBox2:
List<RectBox>
卡尺检测区2。
3. IMVSC2CMeasureModuTool
类
描述: 圆圆测量工具类,提供测量功能的核心接口。
Public 成员函数
- IMVSC2CMeasureModuTool()
构造函数。 - Run():
override void
模块自执行。
Public 属性
- ModuResult:
C2CMeasureResult
模块结果对象。 - ModuParams:
C2CMeasureParam
模块参数对象。
示例程序
以下是一个简单的C#代码示例,展示如何使用IMVSC2CMeasureModuCs
命名空间进行圆圆测量:
using IMVSC2CMeasureModuCs;
class Program
{
static void Main(string[] args)
{
// 创建测量工具实例
var tool = new IMVSC2CMeasureModuTool();
// 配置参数
tool.ModuParams.InputImage = new ImageBaseData(); // 设置输入图像
tool.ModuParams.FindMode1 = FindMode1Enum.Best;
tool.ModuParams.EdgePolarity1 = EdgePolarity1Enum.BlackToWhite;
tool.ModuParams.EdgeThresh1 = 100;
tool.ModuParams.AngleLimitEnable = true;
tool.ModuParams.AngleLimitLow = -90.0;
tool.ModuParams.AngleLimitHigh = 90.0;
// 执行测量
tool.Run();
// 获取结果
var result = tool.ModuResult;
Console.WriteLine($"测量角度: {result.Angle}");
Console.WriteLine($"测量距离: {result.Dist}");
Console.WriteLine($"位置关系: {result.C2CType}");
}
}
错误码定义
- 0: 成功
- 1: 输入图像无效
- 2: 参数超出范围
- 3: 测量失败
- 其他: 请参考具体错误码文档
总结
IMVSC2CMeasureModuCs
提供了一个强大的工具集,用于在图像中测量两个圆的几何关系。通过灵活的参数配置和详细的结果输出,开发者可以轻松集成到图像处理应用中。
更多详细信息,请参考官方文档或联系技术支持。