From 4699b33725358104ad05c0489c2666052257dff8 Mon Sep 17 00:00:00 2001 From: Evita Inokova Date: Sat, 13 Nov 2021 20:28:46 +0300 Subject: [PATCH 1/4] task1 --- filter.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/filter.py b/filter.py index 4150df2..7c7e38d 100644 --- a/filter.py +++ b/filter.py @@ -5,16 +5,16 @@ a = len(arr) a1 = len(arr[1]) i = 0 -while i < a - 11: +while i < a: j = 0 - while j < a1 - 11: + while j < a1: s = 0 for n in range(i, i + 10): for n1 in range(j, j + 10): - n1 = arr[n][n1][0] + n0 = arr[n][n1][0] n2 = arr[n][n1][1] n3 = arr[n][n1][2] - M = n1 + n2 + n3 + M = (int(n0) + int(n2) + int(n3)) / 3 s += M s = int(s // 100) for n in range(i, i + 10): From 186f042049283e4386a768c698997aec94806ceb Mon Sep 17 00:00:00 2001 From: Evita Inokova Date: Sat, 13 Nov 2021 20:33:41 +0300 Subject: [PATCH 2/4] task2 --- filter.py | 63 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 24 deletions(-) diff --git a/filter.py b/filter.py index 7c7e38d..d6f5b80 100644 --- a/filter.py +++ b/filter.py @@ -2,27 +2,42 @@ import numpy as np img = Image.open("img2.jpg") arr = np.array(img) -a = len(arr) -a1 = len(arr[1]) -i = 0 -while i < a: - j = 0 - while j < a1: - s = 0 - for n in range(i, i + 10): - for n1 in range(j, j + 10): - n0 = arr[n][n1][0] - n2 = arr[n][n1][1] - n3 = arr[n][n1][2] - M = (int(n0) + int(n2) + int(n3)) / 3 - 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 -res = Image.fromarray(arr) -res.save('res.jpg') +height = len(arr) +width = len(arr[1]) +size = int(input("Enter size: ")) +gradation = int(input("Enter gradation: ")) +step = int(255 / gradation) + +class Grey: + def __init__(self, step, height, width, size, arr): + self.step = step + self.height = height + self.width = width + self.size = size + self.arr = arr + def getGrey(self): + i = 0 + while i < self.height: + j = 0 + while j < self.width: + average = 0 + for n in range(i, i + self.size): + for n1 in range(j, j + self.size): + r = self.arr[n][n1][0] + g = self.arr[n][n1][1] + b = self.arr[n][n1][2] + grey = (int(r) + int(g) + int(b)) / 3 + average += grey + average = int(average // (self.size*self.size)) + for n in range(i, i + self.size): + for n1 in range(j, j + self.size): + self.arr[n][n1][0] = int(average // self.step) * self.step + self.arr[n][n1][1] = int(average // self.step) * self.step + self.arr[n][n1][2] = int(average // self.step) * self.step + j = j + self.size + i = i + self.size + return self.arr + + newPicture = Grey(step, height, width, size, arr) + res = Image.fromarray(newPicture.getGrey()) + res.save('res.jpg') From ad421fc0cd554bbc1cc3b41c6a999866e0f14849 Mon Sep 17 00:00:00 2001 From: Evita Inokova Date: Sat, 13 Nov 2021 20:34:45 +0300 Subject: [PATCH 3/4] task3 --- filter.py | 29 +++++++++-------------------- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/filter.py b/filter.py index d6f5b80..c41f7e7 100644 --- a/filter.py +++ b/filter.py @@ -20,24 +20,13 @@ def getGrey(self): while i < self.height: j = 0 while j < self.width: - average = 0 - for n in range(i, i + self.size): - for n1 in range(j, j + self.size): - r = self.arr[n][n1][0] - g = self.arr[n][n1][1] - b = self.arr[n][n1][2] - grey = (int(r) + int(g) + int(b)) / 3 - average += grey - average = int(average // (self.size*self.size)) - for n in range(i, i + self.size): - for n1 in range(j, j + self.size): - self.arr[n][n1][0] = int(average // self.step) * self.step - self.arr[n][n1][1] = int(average // self.step) * self.step - self.arr[n][n1][2] = int(average // self.step) * self.step - j = j + self.size - i = i + self.size - return self.arr + color_sum = np.sum((self.arr[i: i + self.size, j: j + self.size]) / 3) + average = int(color_sum // (self.size*self.size)) + self.arr[i: i + self.size, j: j + self.size] = int(average // self.step) * self.step + j = j + self.size + i = i + self.size + return self.arr - newPicture = Grey(step, height, width, size, arr) - res = Image.fromarray(newPicture.getGrey()) - res.save('res.jpg') +newPicture = Grey(step, height, width, size, arr) +res = Image.fromarray(newPicture.getGrey()) +res.save('res.jpg') From 3232ee0e27223aefc8b8c903587b81166bc0c26e Mon Sep 17 00:00:00 2001 From: Evita Inokova Date: Sat, 13 Nov 2021 20:35:20 +0300 Subject: [PATCH 4/4] task4 --- filter.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/filter.py b/filter.py index c41f7e7..056839e 100644 --- a/filter.py +++ b/filter.py @@ -1,6 +1,7 @@ from PIL import Image import numpy as np -img = Image.open("img2.jpg") +img = Image.open(input("Enter image you want to change: ")) +result_img = input("Enter image to write your result onto: ") arr = np.array(img) height = len(arr) width = len(arr[1]) @@ -29,4 +30,4 @@ def getGrey(self): newPicture = Grey(step, height, width, size, arr) res = Image.fromarray(newPicture.getGrey()) -res.save('res.jpg') +res.save(result_img)