diff --git a/filter.py b/filter.py index 4150df2..080ebee 100644 --- a/filter.py +++ b/filter.py @@ -1,28 +1,28 @@ from PIL import Image import numpy as np + + +def replace_with_gray(width, height, arr, gradation): + for x in range(0, len(arr), height): + for y in range(0, len(arr[1]), width): + + grad = np.sum(arr[x: x + height, y: y + width]) // (height * width * 3) + + color = int(grad // gradation) * gradation + arr[x: x + height, y: y + width] = np.full(3, color) # + + img = Image.open("img2.jpg") +#img = Image.open(input("введите название файла ")) + arr = np.array(img) -a = len(arr) -a1 = len(arr[1]) -i = 0 -while i < a - 11: - j = 0 - while j < a1 - 11: - s = 0 - for n in range(i, i + 10): - for n1 in range(j, j + 10): - n1 = arr[n][n1][0] - n2 = arr[n][n1][1] - n3 = arr[n][n1][2] - M = n1 + n2 + n3 - s += M - s = int(s // 100) - for n in range(i, i + 10): - for n1 in range(j, j + 10): - arr[n][n1][0] = int(s // 50) * 50 - arr[n][n1][1] = int(s // 50) * 50 - arr[n][n1][2] = int(s // 50) * 50 - j = j + 10 - i = i + 10 + +width = int(input('Введите ширину мозайки ')) +height = int(input('Введите высоту мозайки ')) +gradation = int(input('Введите градацию серого ')) + +replace_with_gray(width, height, arr, gradation) + res = Image.fromarray(arr) res.save('res.jpg') + diff --git a/res.jpg b/res.jpg index d8d97ff..f80ca2f 100644 Binary files a/res.jpg and b/res.jpg differ