如何在OpenCvSharp中获取所有点?

时间:2017-08-24 17:30:03

标签: c# opencv opencvsharp

从Point(x1,y1)到Point(x2,y2)有一条线。而且我想得到那条线上的所有要点。

我知道,OpenCv有LineIterator。但我找不到如何在C#上使用它?

C ++中有示例用法(用于提供想法):

LineIterator it(img, pt1, pt2, 8);
for(int i = 0; i < it.count; i++, ++it)
{
    Point pt= it.pos(); 
    //Draw Some stuff using that Point pt
}

提前致谢。

1 个答案:

答案 0 :(得分:1)

使用LineIterator实例的枚举器:

// You can pass connectivity as constructor argument. Default is 8.
foreach (var lip in new LineIterator(img, pt1, pt2)) {
    Point p = lip.Pos;
    // Use appropriate type for generic GetValue<of T>().
    byte v = lip.GetValue<byte>();
}}

有关更多信息,请查看OpenCvSharp source code。在当前版本(3.2.0.20170324)中,LineIterator属性不起作用。仅在我的代码段中使用LineIterator.Pointlip)属性。