如何在c#中进行基于矢量(基于多边形)的图像处理

时间:2015-10-12 08:30:32

标签: c# image-processing vector-graphics

我正在寻找一种方法,允许我将图像处理技术应用于由一组点(x和y)定义的一组多边形,然后应用以下操作: 减去,侵蚀,膨胀,得到形成连续区域的所有区域连接到特定区域。

图像是单色的(无颜色数据)。

有人知道怎么做这个吗?我看过gtk-sharp,但似乎错过了其中一些函数,大多数其他库只将光栅图形作为输入。

Opencv在一组点上似乎没有那么好用(或者有办法解决这个问题吗?)。

我正在寻找的是这样的:

image image;
List<List<Point>> shapes;
List<Point> extract;
foreach(List<Point> shape in shapes){
    image.add(shape)
} 
image.remove(extract)
image.erode(5);
image.dialate(5)
image.getAllConnectedTo(0,0); 

有人知道一个好的图书馆吗?或者一般来说这样做的方法?

请注意,如果有任何不清楚的地方,请随意询问,这样我就可以证明这一点。

1 个答案:

答案 0 :(得分:0)

我使用SharpDX库来制作3D图形。他们还在GitHub上有2D模块和样本。它似乎易于使用且记录良好。检查this示例。

以下是示例代码段:

    void TessellationSink.AddTriangles(Triangle[] triangles)
    {
        // Add Tessellated triangles to the opened GeometrySink
        foreach (var triangle in triangles)
        {
            GeometrySink.BeginFigure(triangle.Point1, FigureBegin.Filled);
            GeometrySink.AddLine(triangle.Point2);
            GeometrySink.AddLine(triangle.Point3);
            GeometrySink.EndFigure(FigureEnd.Closed);                
        }
    }

所有绘画内容都在&#34;永远&#34;环。因此,在新渲染发生后,您的更改将显示在屏幕上。