Beispiel #1
0
 static void AddMask(Number[][] data, Number[][] add, int addx, int addy)
 {
     foreach (var addv in GetArrayInfos(add))
     {
         var datav = new ArrayDataInfo <Number>()
         {
             data = data,
             x    = addv.x + addx,
             y    = addv.y + addy,
         };
         datav.value = datav.value.Plus(addv.value);
     }
 }
Beispiel #2
0
        static Number[][] DoMask(Number[][] data, Number[][] mask, Number multiply)
        {
            var r = CloneArray(data);

            foreach (var d in GetArrayInfos(data))
            {
                var rd = new ArrayDataInfo <Number>()
                {
                    data = r,
                    x    = d.x,
                    y    = d.y
                };

                var values = GetArrayInfos(mask).Select(
                    m =>
                {
                    var dm = new ArrayDataInfo <Number>()
                    {
                        data = data,
                        x    = m.x + d.x,
                        y    = m.y + d.y,
                    };
                    return(m.value.Multiply(dm.value));
                }).ToArray();
                var n = new Number()
                {
                    numerator = 0, denominator = 1
                };
                foreach (var v in values)
                {
                    n = n.Plus(v);
                }
                rd.value = n.Multiply(multiply);
            }

            return(r);
        }