0

对于图像过滤器,我想生成一个可变邻域。这就是我的社区现在的样子,它是一个摩尔社区。

private Point[] neighborhood = new Point[]
                                               {
                                                   new Point(-1,-1),
                                                   new Point(0,-1),
                                                   new Point(1,-1),

                                                   new Point(-1,0),
                                                   new Point(1,0),

                                                   new Point(-1,1), 
                                                   new Point(0,1), 
                                                   new Point(1,1), 
                                               };

当我想改变邻域的大小时,这会变得相当复杂。我想要一个返回所有坐标的函数,比如 generateNeighborhood(8) 会返回这个点数组。最好的方法是什么?

4

1 回答 1

1

像这样的东西?

private Point[] GetNeighbors(int count)
{
    int a, x, y, c = count / 2;
    Point[] p = new Point[count * count];

    for (a = y = 0; y < count; y++)
        for (x = 0; x < count; x++)
            p[a++] = /* Create point here */
    return p;
}

我认为您可以添加缺少的代码;)

于 2012-10-30T11:29:43.950 回答