示例#1
0
 /// <summary>
 /// Set the border of an image volume to a specific value.
 /// </summary>
 public static void SetBorder <T>(this Volume <T> volume, Border2l border, T value)
 {
     volume.ApplyCenterBordersAndCorners(border,
                                         v => { },
                                         v => v.Set(value), v => v.Set(value), v => v.Set(value), v => v.Set(value),
                                         v => v.Set(value), v => v.Set(value), v => v.Set(value), v => v.Set(value));
 }
示例#2
0
 /// <summary>
 /// Replicate the border pixels of the center region outward.
 /// </summary>
 public static void ReplicateBorder <T>(this Volume <T> volume, Border2l border)
 {
     volume.ApplyCenterBordersAndCorners(border,
                                         v => { },
                                         v => v.SetByCoord(z => false, (z, y, vz) => v[v.EX, y, z], (z, y, x, vz, vy) => vy),
                                         v => v.SetByCoord(z => false, (z, y, vz) => v[v.FX - 1, y, z], (z, y, x, vz, vy) => vy),
                                         v =>
     {
         var tv = v.SubVolumeWindow(v.F, v.S.YXZ, v.D.YXZ, v.F.YXZ);
         tv.SetByCoord(z => false, (z, y, vz) => tv[tv.EX, y, z], (z, y, x, vz, vy) => vy);
     },
                                         v =>
     {
         var tv = v.SubVolumeWindow(v.F, v.S.YXZ, v.D.YXZ, v.F.YXZ);
         tv.SetByCoord(z => false, (z, y, vz) => tv[tv.FX - 1, y, z], (z, y, x, vz, vy) => vy);
     },
                                         v => v.SetByCoord(z => v[v.EX, v.EY, z], (z, y, vz) => false, (z, y, x, vz, vy) => vz),
                                         v => v.SetByCoord(z => v[v.FX - 1, v.EY, z], (z, y, vz) => false, (z, y, x, vz, vy) => vz),
                                         v => v.SetByCoord(z => v[v.EX, v.FY - 1, z], (z, y, vz) => false, (z, y, x, vz, vy) => vz),
                                         v => v.SetByCoord(z => v[v.FX - 1, v.FY - 1, z], (z, y, vz) => false, (z, y, x, vz, vy) => vz));
 }