From 67b5ff8c9bc3492066a5d7a142868dcfe4fca6a8 Mon Sep 17 00:00:00 2001 From: nicosare Date: Fri, 19 Nov 2021 00:35:16 +0500 Subject: [PATCH 1/4] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=BF=D1=80=D0=BE=D0=B1=D0=BB=D0=B5=D0=BC?= =?UTF-8?q?=D0=B0=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=D1=8F=20=D0=B1=D0=B5=D0=B7=D0=B7=D0=BD=D0=B0?= =?UTF-8?q?=D0=BA=D0=BE=D0=B2=D0=BE=D0=B3=D0=BE=20=D1=86=D0=B5=D0=BB=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=20numpy.uint8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit налажена работа с граничными условиями, в результате чего справа и внизу не остаётся необработанных полос по 10 пикселей исправлена формула расчёта компонентов серого цвета исправлено неверные название переменной --- filter.py | 10 +++++----- res.jpg | Bin 65485 -> 39892 bytes 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/filter.py b/filter.py index 4150df2..7c01aa5 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] + n0 = arr[n][n1][0] n2 = arr[n][n1][1] n3 = arr[n][n1][2] - M = n1 + n2 + n3 + M = n0 // 3 + n2 // 3 + 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 diff --git a/res.jpg b/res.jpg index d8d97ffbcda90f190e9bf8b3376be16b3b9a1620..58d78798063885494e46665547ca46dda3946dbd 100644 GIT binary patch literal 39892 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 From d48cfec75176817b155dc7669e46f5256e1fe919 Mon Sep 17 00:00:00 2001 From: nicosare Date: Fri, 19 Nov 2021 02:54:13 +0500 Subject: [PATCH 2/4] =?UTF-8?q?=D0=9A=D0=BE=D0=B4=20=D1=81=D0=BE=D0=BE?= =?UTF-8?q?=D1=82=D0=B2=D0=B5=D1=82=D1=81=D1=82=D0=B2=D1=83=D0=B5=D1=82=20?= =?UTF-8?q?PEP8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Были переименованы переменные, названия стали более понятны Добавлена возможность управлять размерами мозайки и градациями серого Были выделены функции --- filter.py | 69 ++++++++++++++++++++++++++++++++++-------------------- res.jpg | Bin 39892 -> 22551 bytes 2 files changed, 43 insertions(+), 26 deletions(-) diff --git a/filter.py b/filter.py index 7c01aa5..0c93a69 100644 --- a/filter.py +++ b/filter.py @@ -1,28 +1,45 @@ from PIL import Image 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 - 9: - j = 0 - while j < a1 - 9: - 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 = n0 // 3 + n2 // 3 + 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') \ No newline at end of file + + +def do_filter(count_gradations, mosaic_size): + img = Image.open("img2.jpg") + arr = np.array(img) + width = len(arr) + height = len(arr[1]) + gradations = 255 // count_gradations + pixel_x = 0 + + def find_average_brightness(array, px_width, px_height, mosaic): + sum_brightness = 0 + for cell_pixel_x in range(px_width, px_width + mosaic): + for cell_pixel_y in range(px_height, px_height + mosaic): + px_coord = array[cell_pixel_x][cell_pixel_y] + r = px_coord[0] + g = px_coord[1] + b = px_coord[2] + median = r // 3 + g // 3 + b // 3 + sum_brightness += median + average_bright = int(sum_brightness // mosaic_size ** 2) + return average_bright + + def paint_cell(array, px_width, px_height, mosaic): + for cell_pixel_x in range(px_width, px_width + mosaic): + for cell_pixel_y in range(px_height, px_height + mosaic): + px_coord = array[cell_pixel_x][cell_pixel_y] + px_coord[0] = int(average_brightness // gradations) * gradations + px_coord[1] = int(average_brightness // gradations) * gradations + px_coord[2] = int(average_brightness // gradations) * gradations + + while pixel_x < width - mosaic_size + 1: + pixel_y = 0 + while pixel_y < height - mosaic_size + 1: + average_brightness = find_average_brightness(arr, pixel_x, pixel_y, mosaic_size) + paint_cell(arr, pixel_x, pixel_y, mosaic_size) + pixel_y = pixel_y + mosaic_size + pixel_x = pixel_x + mosaic_size + res = Image.fromarray(arr) + res.save('res.jpg') + + +do_filter(10, 52) \ No newline at end of file diff --git a/res.jpg b/res.jpg index 58d78798063885494e46665547ca46dda3946dbd..ef556296487042bb70e14009f2c1c033ebbc5c6e 100644 GIT binary patch literal 22551 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 Date: Fri, 19 Nov 2021 18:56:15 +0500 Subject: [PATCH 3/4] =?UTF-8?q?=D0=A0=D1=83=D1=87=D0=BD=D1=8B=D0=B5=20?= =?UTF-8?q?=D1=86=D0=B8=D0=BA=D0=BB=D1=8B=20=D0=BF=D0=BE=20=D0=B2=D0=BE?= =?UTF-8?q?=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE=D1=81=D1=82=D0=B8=20=D0=B1?= =?UTF-8?q?=D1=8B=D0=BB=D0=B8=20=D0=B7=D0=B0=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D1=8B=20=D0=BD=D0=B0=20=D0=BC=D0=B0=D1=82=D1=80=D0=B8=D1=87?= =?UTF-8?q?=D0=BD=D1=8B=D0=B5=20=D0=BF=D1=80=D0=B5=D0=BE=D0=B1=D1=80=D0=B0?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- filter.py | 55 +++++++++++++++++++----------------------------------- res.jpg | Bin 22551 -> 28899 bytes 2 files changed, 19 insertions(+), 36 deletions(-) diff --git a/filter.py b/filter.py index 0c93a69..6e98f72 100644 --- a/filter.py +++ b/filter.py @@ -4,42 +4,25 @@ def do_filter(count_gradations, mosaic_size): img = Image.open("img2.jpg") - arr = np.array(img) - width = len(arr) - height = len(arr[1]) - gradations = 255 // count_gradations - pixel_x = 0 - - def find_average_brightness(array, px_width, px_height, mosaic): - sum_brightness = 0 - for cell_pixel_x in range(px_width, px_width + mosaic): - for cell_pixel_y in range(px_height, px_height + mosaic): - px_coord = array[cell_pixel_x][cell_pixel_y] - r = px_coord[0] - g = px_coord[1] - b = px_coord[2] - median = r // 3 + g // 3 + b // 3 - sum_brightness += median - average_bright = int(sum_brightness // mosaic_size ** 2) - return average_bright - - def paint_cell(array, px_width, px_height, mosaic): - for cell_pixel_x in range(px_width, px_width + mosaic): - for cell_pixel_y in range(px_height, px_height + mosaic): - px_coord = array[cell_pixel_x][cell_pixel_y] - px_coord[0] = int(average_brightness // gradations) * gradations - px_coord[1] = int(average_brightness // gradations) * gradations - px_coord[2] = int(average_brightness // gradations) * gradations - - while pixel_x < width - mosaic_size + 1: - pixel_y = 0 - while pixel_y < height - mosaic_size + 1: - average_brightness = find_average_brightness(arr, pixel_x, pixel_y, mosaic_size) - paint_cell(arr, pixel_x, pixel_y, mosaic_size) - pixel_y = pixel_y + mosaic_size - pixel_x = pixel_x + mosaic_size - res = Image.fromarray(arr) + array = np.array(img) + size_img = array.shape + + for i in range(0, size_img[0], mosaic_size): + for j in range(0, size_img[1], mosaic_size): + paint_cell(array, i, j, mosaic_size, count_gradations) + + res = Image.fromarray(array) res.save('res.jpg') -do_filter(10, 52) \ No newline at end of file +def find_average_brightness(arr, px_width, px_height, mosaic): + return np.average(arr[px_width: px_width + mosaic, px_height: px_height + mosaic]) + + +def paint_cell(arr, width, height, mosaic_size, count_gradations): + gradations = 255 // count_gradations + average_brightness = find_average_brightness(arr, width, height, mosaic_size) + arr[width: width + mosaic_size, height: height + mosaic_size] = average_brightness // gradations * gradations + + +do_filter(100, 20) diff --git a/res.jpg b/res.jpg index ef556296487042bb70e14009f2c1c033ebbc5c6e..be0b2906f1bb182ad984d564f8252dc460b9a501 100644 GIT binary patch literal 28899 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 literal 22551 zcmeHvd0b52|Not~A(5D9m0io5l%gV&WkMlo8Pf88>#dcNhze77LyEUVmU@@bKB1!3 zSl%s`w3iAaX`@uyYnI;`X6`-Hr!4Q!=a1hXUmi2}o_pq=d(OG9^LjmB&)4h3eZ_r; zOf)fGXN=%*2!aFu5pFHA3K=6IftL^;gU92?jvXT@MHnwNZk&|-q{-3*Wd)UK$_h$K z(`PT3H+|-Bvy_xnm#F==P)kQgM`fPAp`P}#1&egFd5z%4jvXsCPD*b4cscDEN;9;7 z`5*ToA~Qzhv&d&r+)PA71}7?m?)f8b|&5wru(|2<~b$~%u_Ha z;3Fy{CO$(;V$uq8{2yMEXKDwIA*?+A_nk*$XD!;?A-jD~iR6^oI(2h8c|-d;vY#8+ zk$*KZbYR%HY7i+=9C&%6G6)eF;80Z~MMnDMT*&swxey?!8ujhdnvLfoTGB(#TqK38 zXcrd1MH**tk)2$m*9~cnjiMr|BYa{gT;w+{qS9g+-^N8)DJ%+Y^T^K|sSo^XlKZ*H zm!eKis0p3PMV=G$2d&i6r)enMb63E+nODVVU~jGs{AaRa@}JlkvNUmA?D5&;?hA>SnjRo&f$BN4uR zgvF!Y{ceW}>mOoU1gFqQIh0^-BtF82(9T5~BI?=dp>_-|a)}b$9dG#`4;ud9VP)J# zF2dQ$A(qBj)pC&m=YB3?Lc^ZsXkF-tb#hBhA1jNCJY>*zRxZxrA`7@khh~eBT)8<3 zA@D!Gv=Msxwf9@&E1U_)=FRWVTFBc#!Xj$6wv?E5u$?(zZ_j-9=33KhKkG2oOowhZ z7YShusV|$uMKmKiq}kz_Zb&1gZW0%XX=fehBGu+xWK0;FNco`2d6wy>Dtd*B95dxa zFuqLXB0JVVO|-;DPH^VPXbv9cA_WfYQ2$`obV?6ss6d4s>Pz!)L%bLrfn22Al#5KK z^jcCLgQaV($pV+E$va5DQfrkG*-U&D;lf4Mb!E3Pz7%Nh!O}Smx4bC$p7?ffZ%Y`*5VT5ny5}MSm7_ubyPtEBX`s_q>ZU4pG?JTqK_{SaIeLE;64e z{fYcPn4P4E{?&|@Auck5(rfjiidKx*g@ipAsw^!rQmTSvod_)uvMCAicIY@wDeL2` z1S3sYMD8F*eBdJgJn>jUd9E}_Nwdqf;46>F38I{d#KF^)57L}x!Tm;D5<`dFd!g zE7T>5x>BH>4IIW&o;R^Xxrh@zJR<@sV78#IrbE5225oD&`Kt%*p_Sja*TB-=a~aK0 zi3UMdN~GZ=E0sk|vWvG?`BK)wN%O(_)1BF6(w&JuQvEvLkl6~>_eGouga)KVpms$S zvDv8>n0mL6t#wVSuJlL+Q(SMV(o-n340;2;+XptM$$krzP)Oq1CU*^Ao` zVb)@p=2zMUUHGoC0#?Sl5H%qJQzAHer9$?__BJqe5hr^R(oCLkY!0hb(u+|eY9D6r zY9EI6MbwqD$X z4=S;LN&*G{w(pOZ*BsPxp@RU#^#o%AdnsUI;l;>to1}kc^1lo*W!T(Lpg7lhJ z40{PAFmw+UfW~_+ky36NPW)5paF=9L(6Lf#ccv;pkzWg*m^ijSm`iz~$*BQ~DfA)s z7Rlo+5-t}abLK8GJ-b=bQL}_ZI3^GUKZnO=17|6#l7a@_d6Ub`l zM!u|KYsW6sE3FzU4(ld99B%aC!S!6^vI9E}h?YhmedxV2>oFH;OXfVa9gnUW+1(We z8B}D2v8v9Az_8{hs@VTc+D}c|eIxN1ktIgYyRD0QrP<54$Oj@PN97fAQA{4`$?Tar0T zfh~-bw6tR0rj$9b0A5R8^Ap#tQY?A4bOWW6$;q+B{1(Uxh=6k`H}!V3wdhur?kX;# z3{YCJxcaYFNEAWKW6L!8`(KtzE)^a`tVnudE~1@ zS#2sg)hV7GP5MQQGyu1M2QaXRvx+w<61uV}?4w-7j5r|8dk>g2fHl622uTD*=q?|t zAn3MjI*<>x%FFA+u7Ul|hMh)}%`G`hF0!7{*$z;@Cl|Tp(BB6jcff*QuFw;J8QxJ( z`gBCsIACcQLvwcPHZx@Avw+AkuX-$dTg_?M%>-S&#pnl?%|1Y_guEP;8kL`_sCa^j zxC9e;v=UC%z+A z-g8%60YF`FzjRMh_{ic_xEw(G7b=`uN^5A#zQ%|tfL;NwZ5N~01lT#qH(w0HwU%tm zo3v?!3nM<|M^J0RVrV22mgGltfiB#O7@7~1`++XbAAsvA1HLGIF$U(M$?-v7m9`)3 z(}Pv{gg8K@)M~PCWPN;hSRRbcf>TXt?O~2;Bv9Nl%y>w=1VXH-(xLKcn{H4ffDZXA z{9xtC_)1o2;sDSzJ45NhgE26N<{(18yrK?d+4jB#&U08%Kb}))H{aVHDxmgAV10N; zSpoi{TLFRj#xfu@sM~l&p+bGp0PqoN&DfU!*vJNc!9p%FKLkTu zaX_8$xV=r{>d;{HYTyEM8s!C%Q$uM@156t{t*E%G^$pJ9gg1EXx`KDSPu=0Kp)>XT z#T$f6i$5lUwfvDT<)Kw~&3`H9s7ccanG<>XH>V#h&GG50`y3HB!++}HFA?t?LyOXO z+uT2vro5mzU+1?K%>`p6u1g(K$TD1!8=V(AeD-~76WZn170dGKV0^OKaS_PF-aW4SE6#Nh;1mN~F zrGQpZ1EejZ*RTCkKtHfxT4qB#0AQ@5U_AzloeT-)k71(VX}lxOM8LpR01^GRHe#^0 z{nQPj-Z@jd;@d8*ldCf$nsj=fV*b@MC_CA0+%?Df{nkh9HKeb7@Tn)h%&_Rau;RIB z_pPgEQuStYbnE=bW#wMF4CLX#>jHuB39-^UY(0TsqpUQ9>ml(R&3)xv7j?$ebY3x~ zp`Ihkc6Y)S86YxY-Pf267Q_Nd2a$a#6KG$w5TG9p2`z9KF!L~Bs4jw)OKc0{6xp$N ztHAH08SNQ;F%TzgxnPtnupd}|`6a5kp$U_3+&v#$dgpWY zt~lGZ@>5ie^)2Pa2D@w<4^a$E_IB+3%w2H>~fk(wrnB zc&|(0AOl#PXpkWb3xvQ=Qg`>K5ce0}mum|@L4Wnt1un+*N)Nhok#jueY6#B;1YAC4 zum?E0F~3{^$5TYy4>=5J?Ek!sxkx4dz8p(B$qZm%PqrTLJRCTAcajCH{(r?%!cAtE zai%!4R}#Mf^>v$mDcd6eSmFMy5j|tL$kPbU<6!7KT~bw)!9|W=;Ub%YS>U@>Rj8y9 z5H;-X)YLP<{bt$iVXegNwah{$gZQ~#(QvRTj7($A211d~z5}GVS=9O8F^Jz|9;L7U zPr?Bz5JP$kupx<>T%>MH7ja)N^PXdWcFxsBt=`v}G+W_`P|Rg~Y2qSap;o(xM@|@m z<~SNUr%OxLL!p+v<(u$8HK1`Cn7S@AH&QAZ zjk?}ILVWiJ0VGwYJS1J%8%%uBmg4b-VcSDD!{QZLniyR5rTy2_Wu*{j-Hhm5q21Iu z;a5R0U;nRxi-7uxx8ggWz|DhDMi2yd#ld3a2j0k@=-L;+XW9CFt)caMQN$p$s6G{H zlyXp-p&Qq-7sBWV-azO{spt%)p@;(z*WD^zJ1}c#0fQRC#Mw3hzH+oi{Rtx>Ct#-# zZh{>!Kvy$_UJN=Kk9ey)Mo452?dGg`Ni%MwkO&rn_$aRWfHY^jN^cR5ntztg#9>k5 zQHV0~PGUn$9osEbFx!#iE4PU9mU0O?ER~5>XpV%X4X2>zru5rQAX$h2&@s-k-HD0oQUE zMiT6xmtAi!~O?@`8~ipifw%f=Q0I#Oeh@0t}4bFz?0#Z~W}M zQemPy$Udy&FOH*1Z$8giTMTCklmp@B^&J{U=k$a6?2Z3eNIEOk}EcM`@sUsV4HjuED%Iug8VLX_FRs$PVbCnR?~9zaN9l&Y|4SY)>ZDqwGOn9t&4 z4~aw&{rN*m*F?YqP=<5?4L91F`Z-=2kTanzm;(C=iJ#^QjZOl~Gyvk5OnJ^=jT^Mq z#n$SX*-QPm--}NSIjeH%*2X8si`4K`53R~%QyKg@amyW#{uV#?nW`H9YidS#l|rif ztIGz|7P_GEkT03`qH2SXyrUG2?JggyykfNYv*{i}sTI3bCKDT{0*Z^$Yx2(hK|cUz z3mHQIq248nVlURu&X)!vPN>F3wF(G}G!wscauFOS6)YoY1VX`vAasg%Leh+KRdTPT zbu8DidSb7b&kC0bwy=CF0rEBe#s$XC2|iD~`0P$`$rdIGV#+Bfe6hae1QtJ()3653 zXW(g?5%1ZAr}aZNA^TI^+hhQ_To2cKEK9C0>SHHlpyBs&+#YI7FW~EecODFq9Db_e zo_jdheIpGqukpX25l)!*Gz`#Z$9L^e8!@_b6kQNuZJCroA!mHk4mM6=!&zbn8 zR%K{DvhU)*=e57jiTl~fnzdoc80OG)h&240Dp45ZUZJOu?{g}?9QM?B{-)N)J2-~s zB+P{WJO11&t%ZV->pgk@8&V!tXb^18^c=h8(8;!l945oLqh9V!d%KbHe8}2@Snf#4 zIpsXVg9$U7o5M4zBj56ZwI29CXxy$o@4iY6vp{jl+7v^rHa>Fi@Z$?{VyRH9oooPiR`XDsaE$=}iqFXA>roQ?FKeBuXXu>|E| zY!(VmVDD}GsDzmmny(0cFCf35e(~@R#Lz(jk&JMt08|`Amo0Y{bZ+>OUQw+5?u$E> z{%)^ssQrl$?a#Y1L)4GX9a~`N9<^60NBvl3V8nE5*NY|3OGvV%+XZ&%C#hB81VqbZ zzJJuV8E_Q5jK@gHy%0L_p98IA)MW9l4TC$VB}@a!9(*1dSRu$m6XJm}Mt9`g5Mi`H z-hgGx06>5i%5kOe6S_8x)>)r|cY#GV@7*I)A4mtd8&De_y{g6=s;Wzyo6io2jXUbK zML`MZEITIwp1>c1VjP@wX^5HYMm?qrZb$W7s2W&U6a(^c4VBH#?!r#aX;PK-XZcrgW zKOX9yP{eJ4Ab*M`m_jTr5jQ6GV_r$ix}b^LURF14b?r4;Hf8?aee=ZQ|C>7=asR!! zOPDTgl4PB`o_gxFpQQVO4Qthm3S!qsqP%?fp`#oC$?F+xzbulQ)8>&YkkPJhxVdd$ z+Wx|7B2XemFq#BJc8Qd9 z03ymy-T1i*X;Ub(I~rq2@5DxqkH9j!iD)Kxf&vw(9`&9H;k+!fx6YsM?ac3V)-SrB zX8WTE_%L)J8Z>I-|E5Dy(x<`zg05z0hBgf3^f@nGek1e=_TF2ufMP~GLK`ti;{$?9 zKT+`sB(Oj^;S~g2>8NPc+j0}$6!s2-`%Nh=fWevxG>mScxskFagpp6Yujfpf&(N%9 zo$X_0?Qb|28i*kf70eClhCHiEUOFh0VgzL-@v={uquX<3;^u9k?Qs?v>|mg=W^vf@*KeR%akU?je0WMCyv z=c`l$!3{=JT_D3Hw3X^dh6iqU*txV0B)y`rp=?Z`K}NJO_CF9i@5Ud)bRj$O{h)Kg zk+_P7Ugk5SmPt|VF9sZ~yr%W4oUnxlPZsif`Mrd3$T&#~CJj?KcJMgw!UdH41e>8y z3ywhxxY=Rn!ZCYiI5b8NgG-pPg{S`>mSvNNPGo>k=9UmXK`|B>)qe(tlP4HdDCB_I zQ(8A|(-ogwvQ5W2&k1Dsk$A~`I-A5bqz7F4DK=SHCa>cr{0@>=D)bF!=#qc? z7HqgK#6f?hqo;)l-v*kX38=QT6nkX~npGgmbV(M83IKqn1F+A(R9LF6k=GmvyvA$~ zD$;AhD@+)IXEu5TmN7Rx6&uRRmU0uU5toEZU$+{h;(VZY0aDs{`#s=q5kZDZ)hICy z@*Qe4IcW8>Q*|4a)gs?t8}DRZY)+ERxXgDUa6cdw0XJGTdIpeC07T&U#qZlA=oLn* zLhg&eH4+?!GR%G{LvGKv?9sT2=iej-$r|M`KNtTY7s;+nRiA6Qn$TGqViAz|Y)Nwz z^);##(e0QD_x1_4V?rAfL7t2I==mT*tibm*47BWrt23c}DL?XpU_J1CRRcff=hSPG zWKojL+o&C@@q~^8@2{9h%Ze+D%bJeNa3(lvw~ba8EApMH8##iVjKJ@taIOP|BJpCV z38Z64!calvx~w68el4b)x2t3=oIi6V4=e^#Rgfi{;C?h>Ia@9sz)ZW%(4f`WgzLK-%*8=`HNHdYZLx!zs`dJR|4gqs%ez!!*=OR=JL=$EY{`H z)3UXKX09DIgAl2-X+;msB6r2=a&yv7Cjrd}A7z68Plw(7V-7G6;*@Y$9IepNg&#*t zgTmv(7)HT9HDIT{*^ht)P-`$l^`ivPVez~l@pb}($2%o|XRTguU1{{-bHwE6GXa&@ivhBk%|xm-lrMqx?`0zUYZrksE zvb0KIpCT*lO!@nlfmG4Tdb-L{NZ7VeNLuLNe0rU)ly$Jp1ckmj?&)+QZ85nBW)8Fj@DSA;g2kV zhENr`4y|P&_e0P=?>Nk!2p;)gYkcV0LXr!v3-v{?Fh_KS>^9jnxYNgNwQP39iIhEz zl-zAokfJzh3NAfbGzfq`X-<^G0LTOaDV*q^0{EII^_{wxX@_QUWSH~%xQI(vA4Q@t z%j>guWeOIL-TM}7s=Q2Lr}8pogCfU8U}5Uu`)D-QviT=#?j2?d;@aL;DMnMV2SK~) z;!1w5qLaBDiZeV6(GdG|FaoFeW3hw`JFuM|qo;rMdP_i}+v~3jc)d|-t3^PJxbi2(a0MN6 z(!OhTeA|Log!gofx>Zg%b?^r^Pbh5`6{`_9Ck^9mzOMmsFq}s1IzSEII~Ph+gP|?X z4v{UYGM;iLp}6#NfVbHuEt4tN2-b6tgUDRggx!34Lo}$fiS-0TF=9B+0bH^dQbgzr z6^=&otz6nhKJQ#C4o7Z5=pI^i%|Hsc3dJ ziw&?i(rH9sN&ZuQNH%fKALYR>uPsnCbf>s~a4c{v*_N=UK4-1wmi;<8$sq$1{HQJB zpKupkAF~Ea+Om%q_!5JOjVd7Pkl1Te@7|np(BxeN&DZSgyDcoE(!7N!kv{n=pB!Lx1#K;a2OG4;3-H zbyO2;)BZM*)!^QKl5AI zVl#H{N)bh5e^2sa--}VLb^Ty_gT}@8vGn4PCZF!l>Pl>xv-`sdy?NoL+MWjv6FWpN zHmTBYSa1EKUSA~kPQ9U770p!%#I~G4GGu@TNYO2ED|IxDn0Gy$u2Gq#X4QK>=a_5B z*1gt|ZsuE$1U@SALqKTp+n>p*ydG3OamwV{)8;28%>HxMYnl8O>)+_R>M}yiJQmEa z-fA*M-?n>)-pA#k3#^sTnrM{hxPKbEOU10>)fgv-HyK8zaeB{XN&?$!-)0ng8$}pr ziY*K;d3DNTa_H|%Cs&``?P|Q=NAYx#x%H!$W9Ee)5UaRgPJecLlJjY)1LG&}DY>tH zsPom(S&PHZ<|!s+%$~HJc)*cP%wB$NXcK-FX;1X*2{+G0N><(OoEsCf?YXDt-lv4P zhIA|W+BYj^Q8zp|y0$DTQ*-=*s}^_eO`Vc?J@VWFlZ|f{F8|0y(pt)$vI-~vbIGRs zyu)+lRDOsgR(lsq_2|m{!`w^U(dZj0+nmze*StiL{7A1JKUm>-i@D_4{JBr-Lm#p}KDeEQ zzuTo}piz~YG)2Q@oatX0$uDKsZTF{Bj#+?TjaTC;n*2#rc!QQyj|*It$N;yuxpd52DPYWK(@g5jcoHA*W)g|4_1B9 zQ_#qm8InYF|DbeIn&h)n{aQ4^-)zPnrCiw*)q!~R!(|1wx9nu&sAHmQ@M>Ws*Yg{6 z{EZqG#U?43uhH9cCDl51vm0r>l7eC6p3CLdA8Bi+gr%y?C^EN`BXp#)V?y>Q70Q;2 z$Lxx(@s$pF8I}4lcP*Zf1Fp*xtkdOV0@tK{k#^c%vMs>k@%v!+57S;ejLMvtU3xrs zT2+DJm6s)Us`4@7w6=pss|T*-%9c|P5d0mc_a1hhXSbUmxm$K}gqBy(F;T)t^Flo- z$s;eCdv1Ex<2&OlwytM$(jK0^zDCM*dBxl{^Md_q&&zpFqv~EBy3JC1vNd?9qG{!4 zkC!9~&hJ{;C9O{`cT?KH?&oZx!Ky@K;@QLdn&xc^Q#Nbbu%z^SUvQII^_eR-P7JGo_};cgJtGog^9iuqW1Z(VmTFIXabhs75p9 z8M@GJ#v{=>Aen2<{JE+K4KF{~2>#Lys4p5T{a0i8`1;w+*I4gh`qmH8a43lY}K;uCB{B!Q*`1w_83W|*D*Wj zFZ-SH>J&pZRmr#alar41E6fPINi$T-px=>Hd$dO_I%%yqvhah7Tgt8jy{(CX`_-1! z>leA5E_c+Gd)K+HI`HrDW$K}|it2ZE%dgO%rPNuF?-5$lOpd6{^lxrhvQ9g2PNEy( z8UD?mZRz`234zpgv!u+Qosj!|X?e*~bx-5zaRr8tdJPlw*W6k6s<>*I;h{*k`R=}A z@dnY_vIT}X<>0iunH+7W?7hK%JgMQ5s>F)<7oz_PF*`Wexuvgi-o^))O5WH- z6Mc*{5FZxLA+JSCu9mIQcj(CbzfNm9W|` z&pYH$PQoQAtA#hu`7Tderxs-y?i}6XFi~aW5!HiFYkzx`{X$#)##H4lyQFg|zOgkm zuU8(Ce|}EZRQ<-)tLz9bd*$tK_m#_N2fsDBbE*AAeRrWh^W@&{w9=VDJG@T3G84Od z5${^$;U1n!*u3P})y3@|9v(Usq2}vL)ElxNPgL4*O04U~QC;K8hD$QKxzAH2X&)rL zQ;MfC9UiA1dHHmT$!s^DR{V^Pg|u{K!vyKvyQZG9In)P6X1djkvk?w4G;dO$PKJd= z=lc8BU9Vj$3lb)3r7T+bTZYPFg9-jsAqQeCj&914(7Qg{_VlzFKE?Xqd!ZJt?^Q+A?0;XW2Varhs#ZI^KM7@rbHym>S$e=JqE8_L|ZK( zzBcjMa*MMe Date: Fri, 19 Nov 2021 21:14:09 +0500 Subject: [PATCH 4/4] =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D0=BF=D0=B8=D1=81?= =?UTF-8?q?=D0=B0=D0=BB=20=D0=BA=D0=BE=D0=B4=20=D0=B2=20=D0=BA=D0=BE=D0=BD?= =?UTF-8?q?=D1=81=D0=BE=D0=BB=D1=8C=D0=BD=D1=83=D1=8E=20=D1=83=D1=82=D0=B8?= =?UTF-8?q?=D0=BB=D0=B8=D1=82=D1=83,=20=D0=BA=D0=BE=D1=82=D0=BE=D1=80?= =?UTF-8?q?=D0=BE=D0=B9=20=D0=BD=D0=B0=20=D0=B2=D1=85=D0=BE=D0=B4=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=B4=D0=B0=D1=8E=D1=82=D1=81=D1=8F=20=D0=B8=D0=BC=D1=8F?= =?UTF-8?q?=20=D1=80=D0=B5=D0=B7=D1=83=D0=BB=D1=8C=D1=82=D0=B0=D1=82=D0=B0?= =?UTF-8?q?,=20=D0=BF=D1=83=D1=82=D1=8C=20=D0=B8=D0=B7=D0=BE=D0=B1=D1=80?= =?UTF-8?q?=D0=B0=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F,=20=D0=BA=D0=BE=D0=BB?= =?UTF-8?q?=D0=B8=D1=87=D0=B5=D1=81=D1=82=D0=B2=D0=BE=20=D0=B3=D1=80=D0=B0?= =?UTF-8?q?=D0=B4=D0=B0=D1=86=D0=B8=D0=B9=20=D0=B8=20=D1=80=D0=B0=D0=B7?= =?UTF-8?q?=D0=BC=D0=B5=D1=80=20=D0=BC=D0=BE=D0=B7=D0=B0=D0=B9=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- filter.py | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/filter.py b/filter.py index 6e98f72..3d1925d 100644 --- a/filter.py +++ b/filter.py @@ -2,27 +2,32 @@ import numpy as np -def do_filter(count_gradations, mosaic_size): - img = Image.open("img2.jpg") - array = np.array(img) - size_img = array.shape +def do_filter(): + path_img = input("Введите путь к изображению: ") + name = input("Введите имя выходного изображения: ") + count_gradations = int(input("Введите количество градаций: ")) + mosaic_size = int(input("Введите размер мозайки: ")) + img = Image.open(path_img) + img_data = np.array(img) + size_img = img_data.shape for i in range(0, size_img[0], mosaic_size): for j in range(0, size_img[1], mosaic_size): - paint_cell(array, i, j, mosaic_size, count_gradations) + paint_cell(img_data, i, j, mosaic_size, count_gradations) - res = Image.fromarray(array) - res.save('res.jpg') + res = Image.fromarray(img_data) + path_output = path_img[0:path_img.rindex('\\') + 1] + res.save(f"{path_output}{name}") -def find_average_brightness(arr, px_width, px_height, mosaic): - return np.average(arr[px_width: px_width + mosaic, px_height: px_height + mosaic]) +def find_average_brightness(img_data, width, height, mosaic_size): + return np.average(img_data[width: width + mosaic_size, height: height + mosaic_size]) -def paint_cell(arr, width, height, mosaic_size, count_gradations): +def paint_cell(img_data, width, height, mosaic_size, count_gradations): gradations = 255 // count_gradations - average_brightness = find_average_brightness(arr, width, height, mosaic_size) - arr[width: width + mosaic_size, height: height + mosaic_size] = average_brightness // gradations * gradations + average_brightness = find_average_brightness(img_data, width, height, mosaic_size) + img_data[width: width + mosaic_size, height: height + mosaic_size] = average_brightness // gradations * gradations -do_filter(100, 20) +do_filter() \ No newline at end of file