From 5bc9256b8d6e9de565e6a5b890eec74d4660a200 Mon Sep 17 00:00:00 2001 From: Igor Date: Sun, 14 Nov 2021 20:20:49 +0500 Subject: [PATCH 1/6] Add files --- .idea/.gitignore | 3 +++ .idea/inspectionProfiles/profiles_settings.xml | 6 ++++++ .idea/misc.xml | 4 ++++ .idea/modules.xml | 8 ++++++++ .idea/refactoring-task-at-18.iml | 8 ++++++++ .idea/vcs.xml | 6 ++++++ 6 files changed, 35 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/refactoring-task-at-18.iml create mode 100644 .idea/vcs.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..d56657a --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..d1f0129 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/refactoring-task-at-18.iml b/.idea/refactoring-task-at-18.iml new file mode 100644 index 0000000..d0876a7 --- /dev/null +++ b/.idea/refactoring-task-at-18.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file From 8f9b6fbbd433bf8195edd7894b2a19210ee62009 Mon Sep 17 00:00:00 2001 From: Igor Date: Sun, 14 Nov 2021 20:23:54 +0500 Subject: [PATCH 2/6] stage 1 --- filter.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/filter.py b/filter.py index 4150df2..2619566 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 - 9: j = 0 - while j < a1 - 11: + while j < a1 - 9: 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 + for q in range(j, j + 10): + n1 = arr[n][q][0] + n2 = arr[n][q][1] + n3 = arr[n][q][2] + M = (int(n1) + int(n2) + int(n3)) / 3 s += M s = int(s // 100) for n in range(i, i + 10): @@ -25,4 +25,4 @@ j = j + 10 i = i + 10 res = Image.fromarray(arr) -res.save('res.jpg') +res.save('res.jpg') \ No newline at end of file From 572e23938e6ba1dea550c051f031e85c3d705feb Mon Sep 17 00:00:00 2001 From: Igor Date: Sun, 14 Nov 2021 21:32:11 +0500 Subject: [PATCH 3/6] stage 2 --- filter.py | 51 ++++++++++++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/filter.py b/filter.py index 2619566..3f6f4e5 100644 --- a/filter.py +++ b/filter.py @@ -1,28 +1,37 @@ from PIL import Image import numpy as np + +def Get_gray_sum (arr, i, j, slice): + gray_sum = 0 + for x in range(i, i + slice): + for y in range(j, j + slice): + red = arr[x][y][0] + green = arr[x][y][1] + blue = arr[x][y][2] + middle_pixel = (int(red) + int(green) + int(blue)) / 3 + gray_sum += middle_pixel + gray_sum = int(gray_sum // slice**2) + return gray_sum + +def Create_color (arr, i, j, gray_sum, slice, step): + for x in range(i, i + slice): + for y in range(j, j + slice): + for z in range (3): + arr[x][y][z] = int(gray_sum // step) * step + img = Image.open("img2.jpg") arr = np.array(img) -a = len(arr) -a1 = len(arr[1]) +pixels_count = len(arr) +width = len(arr[1]) i = 0 -while i < a - 9: +while i < pixels_count - 9: j = 0 - while j < a1 - 9: - s = 0 - for n in range(i, i + 10): - for q in range(j, j + 10): - n1 = arr[n][q][0] - n2 = arr[n][q][1] - n3 = arr[n][q][2] - M = (int(n1) + 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 + while j < width - 9: + gray_sum = Get_gray_sum (arr, i, j, 10) + Create_color(arr, i, j, gray_sum, 10, 50) + j += 10 + i += 10 res = Image.fromarray(arr) -res.save('res.jpg') \ No newline at end of file +res.save('res.jpg') + + From f9ee6c7d2e87e3e84da7f142486b3474556272bd Mon Sep 17 00:00:00 2001 From: Igor Date: Sun, 14 Nov 2021 22:49:34 +0500 Subject: [PATCH 4/6] stage 2 - edit --- filter.py | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/filter.py b/filter.py index 3f6f4e5..5baf709 100644 --- a/filter.py +++ b/filter.py @@ -1,37 +1,33 @@ from PIL import Image import numpy as np -def Get_gray_sum (arr, i, j, slice): +def Get_gray_sum (img_list, i, j, area): gray_sum = 0 - for x in range(i, i + slice): - for y in range(j, j + slice): - red = arr[x][y][0] - green = arr[x][y][1] - blue = arr[x][y][2] + for x in range(i, i + area): + for y in range(j, j + area): + red = img_list[x][y][0] + green = img_list[x][y][1] + blue = img_list[x][y][2] middle_pixel = (int(red) + int(green) + int(blue)) / 3 gray_sum += middle_pixel - gray_sum = int(gray_sum // slice**2) + gray_sum = int(gray_sum // area**2) return gray_sum -def Create_color (arr, i, j, gray_sum, slice, step): - for x in range(i, i + slice): - for y in range(j, j + slice): +def Create_color (img_list, i, j, gray_sum, area, step): + for x in range(i, i + area): + for y in range(j, j + area): for z in range (3): - arr[x][y][z] = int(gray_sum // step) * step + img_list[x][y][z] = int(gray_sum // step) * step -img = Image.open("img2.jpg") -arr = np.array(img) -pixels_count = len(arr) -width = len(arr[1]) +img_list = np.array(Image.open("img2.jpg")) +pixels_count = len(img_list) +width = len(img_list[1]) i = 0 while i < pixels_count - 9: j = 0 while j < width - 9: - gray_sum = Get_gray_sum (arr, i, j, 10) - Create_color(arr, i, j, gray_sum, 10, 50) + gray_sum = Get_gray_sum (img_list, i, j, 10) + Create_color(img_list, i, j, gray_sum, 10, 6) j += 10 i += 10 -res = Image.fromarray(arr) -res.save('res.jpg') - - +Image.fromarray(img_list).save('res.jpg') \ No newline at end of file From adb58c3acf82b5da8bffe7cc71e9e7f35cd128d9 Mon Sep 17 00:00:00 2001 From: Igor Date: Sun, 14 Nov 2021 23:06:11 +0500 Subject: [PATCH 5/6] stage 3 --- filter.py | 40 ++++++++++++++++------------------------ 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/filter.py b/filter.py index 5baf709..65975ce 100644 --- a/filter.py +++ b/filter.py @@ -1,33 +1,25 @@ from PIL import Image import numpy as np -def Get_gray_sum (img_list, i, j, area): - gray_sum = 0 - for x in range(i, i + area): - for y in range(j, j + area): - red = img_list[x][y][0] - green = img_list[x][y][1] - blue = img_list[x][y][2] - middle_pixel = (int(red) + int(green) + int(blue)) / 3 - gray_sum += middle_pixel - gray_sum = int(gray_sum // area**2) - return gray_sum - def Create_color (img_list, i, j, gray_sum, area, step): for x in range(i, i + area): for y in range(j, j + area): for z in range (3): img_list[x][y][z] = int(gray_sum // step) * step -img_list = np.array(Image.open("img2.jpg")) -pixels_count = len(img_list) -width = len(img_list[1]) -i = 0 -while i < pixels_count - 9: - j = 0 - while j < width - 9: - gray_sum = Get_gray_sum (img_list, i, j, 10) - Create_color(img_list, i, j, gray_sum, 10, 6) - j += 10 - i += 10 -Image.fromarray(img_list).save('res.jpg') \ No newline at end of file +def Create_IMG (area, step): + img_list = np.array(Image.open("img2.jpg")) + pixels_count = len(img_list) + width = len(img_list[1]) + i = 0 + while i < pixels_count - 9: + j = 0 + while j < width - 9: + section = img_list[i: area + i, j: area + j] + gray_sum = int(np.sum(section) // (area**2)) / 3 + Create_color(img_list, i, j, gray_sum, area, step) + j += 10 + i += 10 + Image.fromarray(img_list).save('res.jpg') + +Create_IMG (10, 6) \ No newline at end of file From e42308005bb229833f77e701f7cc7583e16f345c Mon Sep 17 00:00:00 2001 From: Igor Date: Sun, 14 Nov 2021 23:13:09 +0500 Subject: [PATCH 6/6] stage 4 --- filter.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/filter.py b/filter.py index 65975ce..8fc15a9 100644 --- a/filter.py +++ b/filter.py @@ -7,8 +7,8 @@ def Create_color (img_list, i, j, gray_sum, area, step): for z in range (3): img_list[x][y][z] = int(gray_sum // step) * step -def Create_IMG (area, step): - img_list = np.array(Image.open("img2.jpg")) +def Create_IMG(img, out, area, step): + img_list = np.array(Image.open(img)) pixels_count = len(img_list) width = len(img_list[1]) i = 0 @@ -20,6 +20,6 @@ def Create_IMG (area, step): Create_color(img_list, i, j, gray_sum, area, step) j += 10 i += 10 - Image.fromarray(img_list).save('res.jpg') + Image.fromarray(img_list).save(out) -Create_IMG (10, 6) \ No newline at end of file +Create_IMG(input("name:"), input("out_name:"), int(input("area:")), int(input("step:"))) \ No newline at end of file