public static void binary_dilate_circle(Bytearray image, int r) { if (r == 0) return; Bytearray outa = new Bytearray(); outa.Copy(image); for (int i = -r; i <= r; i++) for (int j = -r; j <= r; j++) { if (i * i + j * j <= r * r) binary_or(outa, image, i, j); } image.Move(outa); }
public static void binary_erode_circle(Bytearray image, int r) { if (r == 0) { return; } Bytearray outa = new Bytearray(); outa.Copy(image); for (int i = -r; i <= r; i++) { for (int j = -r; j <= r; j++) { if (i * i + j * j <= r * r) { binary_and(outa, image, i, j); } } } image.Move(outa); }