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 に答える