Python ΡΠ°Π±ΠΎΡΠ° Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ: ΠΠ³ΡΠ°Π΅ΠΌΡΡ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π² Python / Π₯Π°Π±Ρ
ΠΠ³ΡΠ°Π΅ΠΌΡΡ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π² Python / Π₯Π°Π±Ρ
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ Ρ
ΠΎΡΠ΅Π» Π±Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Ρ ΡΠ΅ΡΠΈΠ» Π²Π·ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ
. Π ΡΡΠ°ΡΡΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ, ΠΎΠ½Π° ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½Π° Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π½Π° Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ².
ΠΠ°ΡΡΠΈΠ½ΠΊΠ° Π΄Π»Ρ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ:
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°
import random
from PIL import Image, ImageDraw #ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
mode = int(input('mode:')) #Π‘ΡΠΈΡΡΠ²Π°Π΅ΠΌ Π½ΠΎΠΌΠ΅Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ.
image = Image.open("temp.jpg") #ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
draw = ImageDraw.Draw(image) #Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
width = image.size[0] #ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΠΈΡΠΈΠ½Ρ.
height = image.size[1] #ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ Π²ΡΡΠΎΡΡ.
pix = image.load() #ΠΡΠ³ΡΡΠΆΠ°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ.
ΠΡΡΠ΅Π½ΠΊΠΈ ΡΠ΅ΡΠΎΠ³ΠΎ
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Β«ΡΡΡΠ΅Π΄Π½ΠΈΡΡΒ» ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΈΠΊΡΠ΅Π».
if (mode == 0):
for i in range(width):
for j in range(height):
a = pix[i, j][0]
b = pix[i, j][1]
c = pix[i, j][2]
S = (a + b + c) // 3
draw.point((i, j), (S, S, S))
Π‘Π΅ΠΏΠΈΡ
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΠΏΠΈΡ, Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΡΡΠΈΡΠ°ΡΡ ΡΡΠ΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π²Π·ΡΡΡ ΠΊΠ°ΠΊΠΎΠΉ β Π½ΠΈΠ±ΡΠ΄Ρ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ.
middle = (R + G + B) / 3
ΠΠ΅ΡΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΈΠΊΡΠ΅Π»Π° ( R ) = middle + 2 * k
ΠΡΠΎΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΈΠΊΡΠ΅Π»Π° ( G ) = middle + k
Π’ΡΠ΅ΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΈΠΊΡΠ΅Π»Π° ( B ) = middle
if (mode == 1):
depth = int(input('depth:'))
for i in range(width):
for j in range(height):
a = pix[i, j][0]
b = pix[i, j][1]
c = pix[i, j][2]
S = (a + b + c) // 3
a = S + depth * 2
b = S + depth
c = S
if (a > 255):
a = 255
if (b > 255):
b = 255
if (c > 255):
c = 255
draw.point((i, j), (a, b, c))
depth = 30
ΠΠ΅Π³Π°ΡΠΈΠ²
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΡΡΠΈΠΌΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π½Π΅Π³Π°ΡΠΈΠ².
ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π»ΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΈΠΊΡΠ΅Π»Π° Π²ΡΡΠ΅ΡΡΡ ΠΈΠ· 255.
if (mode == 2):
for i in range(width):
for j in range(height):
a = pix[i, j][0]
b = pix[i, j][1]
c = pix[i, j][2]
draw.point((i, j), (255 - a, 255 - b, 255 - c))
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠΌΠΎΠ²
ΠΠΎΡ ΡΡΡ ΡΠΎΠ²ΡΠ΅ΠΌ Π²ΡΡ ΠΏΡΠΎΡΡΠΎ.
ΠΡ Π±ΡΠ΄Π΅ΠΌ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΊ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΊΠ°ΠΊΠΎΠ΅ β Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ°Π½Π΄ΠΎΠΌΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°Π·Π±ΡΠΎΡ ΡΡΠΈΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠΌΠΎΠ².
if (mode == 3):
factor = int(input('factor:'))
for i in range(width):
for j in range(height):
rand = random.randint(-factor, factor)
a = pix[i, j][0] + rand
b = pix[i, j][1] + rand
c = pix[i, j][2] + rand
if (a < 0):
a = 0
if (b < 0):
b = 0
if (c < 0):
c = 0
if (a > 255):
a = 255
if (b > 255):
b = 255
if (c > 255):
c = 255
draw.point((i, j), (a, b, c))
factor = 70
Π―ΡΠΊΠΎΡΡΡ
ΠΠ»Ρ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΊΠΎΡΡΠΈ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ»ΠΈ ΠΎΠ½ΠΎ > 0, ΡΠΎ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΡΡΠ΅, ΠΈΠ½Π°ΡΠ΅ ΡΠ΅ΠΌΠ½Π΅Π΅.
if (mode == 4):
factor = int(input('factor:'))
for i in range(width):
for j in range(height):
a = pix[i, j][0] + factor
b = pix[i, j][1] + factor
c = pix[i, j][2] + factor
if (a < 0):
a = 0
if (b < 0):
b = 0
if (c < 0):
c = 0
if (a > 255):
a = 255
if (b > 255):
b = 255
if (c > 255):
c = 255
draw.point((i, j), (a, b, c))
factor = 100
factor = -100
Π§ΡΡΠ½ΠΎ β Π±Π΅Π»ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠ΅ ΠΏΠΈΠΊΡΠ΅Π»Ρ Π½Π°Π΄ΠΎ ΡΠ°Π·Π±ΠΈΡΡ Π½Π° 2 Π³ΡΡΠΏΠΏΡ: ΡΠ΅ΡΠ½ΡΠ΅ ΠΈ Π±Π΅Π»ΡΠ΅.
ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΠΈ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π³ΡΡΠΏΠΏΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊ ΡΠ΅ΠΌΡ Π±Π»ΠΈΠΆΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΈΠΊΡΠ΅Π»Π°: ΠΊ Π±Π΅Π»ΠΎΠΌΡ ΡΠ²Π΅ΡΡ ΠΈΠ»ΠΈ ΠΊ ΡΡΡΠ½ΠΎΠΌΡ.
if (mode == 5):
factor = int(input('factor:'))
for i in range(width):
for j in range(height):
a = pix[i, j][0]
b = pix[i, j][1]
c = pix[i, j][2]
S = a + b + c
if (S > (((255 + factor) // 2) * 3)):
a, b, c = 255, 255, 255
else:
a, b, c = 0, 0, 0
draw.point((i, j), (a, b, c))
factor = 100
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π‘ΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΈ ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΠΊΠΈΡΡΡ.
image.save("ans.jpg", "JPEG")
del draw
ΠΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄
import random
from PIL import Image, ImageDraw
mode = int(input('mode:'))
image = Image.open("temp.jpg")
draw = ImageDraw.Draw(image)
width = image.size[0]
height = image.size[1]
pix = image.load()
if (mode == 0):
for i in range(width):
for j in range(height):
a = pix[i, j][0]
b = pix[i, j][1]
c = pix[i, j][2]
S = (a + b + c) // 3
draw.point((i, j), (S, S, S))
if (mode == 1):
depth = int(input('depth:'))
for i in range(width):
for j in range(height):
a = pix[i, j][0]
b = pix[i, j][1]
c = pix[i, j][2]
S = (a + b + c) // 3
a = S + depth * 2
b = S + depth
c = S
if (a > 255):
a = 255
if (b > 255):
b = 255
if (c > 255):
c = 255
draw.point((i, j), (a, b, c))
if (mode == 2):
for i in range(width):
for j in range(height):
a = pix[i, j][0]
b = pix[i, j][1]
c = pix[i, j][2]
draw.point((i, j), (255 - a, 255 - b, 255 - c))
if (mode == 3):
factor = int(input('factor:'))
for i in range(width):
for j in range(height):
rand = random.randint(-factor, factor)
a = pix[i, j][0] + rand
b = pix[i, j][1] + rand
c = pix[i, j][2] + rand
if (a < 0):
a = 0
if (b < 0):
b = 0
if (c < 0):
c = 0
if (a > 255):
a = 255
if (b > 255):
b = 255
if (c > 255):
c = 255
draw.point((i, j), (a, b, c))
if (mode == 4):
factor = int(input('factor:'))
for i in range(width):
for j in range(height):
a = pix[i, j][0] + factor
b = pix[i, j][1] + factor
c = pix[i, j][2] + factor
if (a < 0):
a = 0
if (b < 0):
b = 0
if (c < 0):
c = 0
if (a > 255):
a = 255
if (b > 255):
b = 255
if (c > 255):
c = 255
draw.point((i, j), (a, b, c))
if (mode == 5):
factor = int(input('factor:'))
for i in range(width):
for j in range(height):
a = pix[i, j][0]
b = pix[i, j][1]
c = pix[i, j][2]
S = a + b + c
if (S > (((255 + factor) // 2) * 3)):
a, b, c = 255, 255, 255
else:
a, b, c = 0, 0, 0
draw.point((i, j), (a, b, c))
image.save("ans.jpg", "JPEG")
del draw
Python. Π Π°Π±ΠΎΡΠ° Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ — wiki Programming Store
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π² Python Π΅ΡΡΡ ΡΡΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Pyllow. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ pip ΡΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Pillow Π½Π΅ ΡΠΎΡΡΠ°Π²ΠΈΡ ΡΡΡΠ΄Π°, ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ python -m pip install pillow, ΠΊΠΎΡΠΎΡΠ°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΊΠ°ΡΠ°Π΅Ρ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ. ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ Π΅Π΅ ΡΠ΅ΡΠ΅Π·Β ΠΈΠΌΠΏΠΎΡΡ:
Π‘Π°ΠΌΡΠΌ Π²Π°ΠΆΠ½ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ Π² ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ β Image. ΠΠΎΡ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π³ΡΡΠ·ΠΈΠΌ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌ Π΅Π΅ Π½Π° ΡΠΊΡΠ°Π½Π΅:
from PIL import Image
img=Image.open(‘d:\\3\\10300013.png’)
img.show()
| from PIL import Image img=Image.open(‘d:\\3\\10300013.png’) img.show() |
ΠΡΠΎΠ±ΡΠ°Π·ΠΈΡ Python ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ, ΠΏΡΠ°Π²Π΄Π°, ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π² ΠΎΠΊΠ½ΠΎ Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΎΠΉ.
Π ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΡΡΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ Π΄Π²Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠ°ΠΊΠΎΠ΅:
Π ΡΠ°ΠΊΠΎΠ΅:
ΠΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΠΌ ΠΈΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΡΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΎΠ²ΡΠΌ ΠΈ ΡΡΠ°ΡΡΠΌ:
from PIL import Image
im1 = Image.open(‘d:\\3\\10300013.png’)
im2 = Image.open(‘d:\\3\\10300014.png’)
Image.blend(im1, im2, 50).show()
| from PIL import Image im1 = Image.open(‘d:\\3\\10300013.png’) im2 = Image.open(‘d:\\3\\10300014.png’) Image.blend(im1, im2, 50).show() |
ΠΠΎΠ»ΡΡΠΈΠ² Π²ΠΎΡ ΡΠ°ΠΊΠΎΠΉ Π²ΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
Π’ΡΠ΅ΡΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ β ΡΡΠΎ Π°Π»ΡΡΠ°. ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΠΎΠΈΠ³ΡΠ°ΡΡΡΡ Ρ Π½ΠΈΠΌ, Π·Π°Π΄Π°ΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 5:
ΠΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ 2:
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π° Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΠΎΠ½ΡΡΠ½ΠΎ. Π₯ΠΎΡΠΎΡΠΎ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠΏΡΠΎΡΠ΅. ΠΠΎΡ Ρ Π½Π°Ρ Π΄Π²Π΅ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ:
ΠΠ°Π»ΠΎΠΆΠΈΠΌ ΠΈΡ Π΄ΡΡΠ³ Π½Π° Π΄ΡΡΠ³Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ blend Ρ Π°Π»ΡΡΠΎΠΉ 2:
ΠΠΎΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ:
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΈΡ Π² ΡΠ°ΠΉΠ»:
from PIL import Image
from PIL import ImageDraw
text = «This is text»
color = (0, 0, 120)
img = Image.new(‘RGB’, (100, 50), color)
imgDrawer = ImageDraw.Draw(img)
imgDrawer.text((10, 20), text)
img.save(«d:\\1\\pil-example.png»)
| from PIL import Image from PIL import ImageDraw Β text = «This is text» color = (0, 0, 120) img = Image.new(‘RGB’, (100, 50), color) imgDrawer = ImageDraw.Draw(img) imgDrawer.text((10, 20), text) img.save(«d:\\1\\pil-example.png») |
ΠΠΎΡ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π΅Ρ Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄:
Π’ΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΡΠΎΡ ΡΠ°Π· ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π½Π΅ Π½Π° ΡΠΊΡΠ°Π½ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ, Π° Π² ΡΠ°ΠΉΠ» ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΠΏΡΡΠΈ.
ΠΡΠ²Π΅Π΄Π΅ΠΌ ΡΠΎΡΠΌΠ°Ρ, ΡΠΈΠΏ, ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ:
from PIL import Image
from PIL import ImageDraw
img = Image.open(‘d:\\3\\lena.jpg’) #ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ
size = img.size #ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ
format = img.format #ΡΠΎΡΠΌΠ°Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ
mode = img.mode #ΠΌΠΎΠ΄(RGBA…)
arr = [] #ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΡΡΡΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ²
arr.append(size) #Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ°Π·ΠΌΠ΅Ρ Π² ΠΌΠ°ΡΡΠΈΠ²
arr.append(format) #Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠΎΡΠΌΠ°Ρ Π² ΠΌΠ°ΡΡΠΈΠ²
arr.append(mode) #Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΌΠΎΠ΄ Π² ΠΌΠ°ΡΡΠΈΠ²
print(arr) #Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΌΠ°ΡΡΠΈΠ²
| from PIL import Image from PIL import ImageDraw Β img = Image.open(‘d:\\3\\lena.jpg’) #ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ size = img.size #ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ format = img.format #ΡΠΎΡΠΌΠ°Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ mode = img.mode #ΠΌΠΎΠ΄(RGBA…) arr = [] #ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΡΡΡΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ² arr.append(size)Β Β #Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ°Π·ΠΌΠ΅Ρ Π² ΠΌΠ°ΡΡΠΈΠ² arr.append(format) #Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠΎΡΠΌΠ°Ρ Π² ΠΌΠ°ΡΡΠΈΠ² arr.append(mode)Β Β #Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΌΠΎΠ΄ Π² ΠΌΠ°ΡΡΠΈΠ² print(arr) #Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΌΠ°ΡΡΠΈΠ² |
ΠΡΠ±ΠΎΠΏΡΡΠ½ΠΎ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ° Π² Π΄ΡΡΠ³ΠΎΠΉ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ Π΅Π³ΠΎ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π² Π½ΡΠΆΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅. Π€ΠΎΡΠΌΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅:
from PIL import Image
from PIL import ImageDraw
img = Image.open(‘d:\\3\\lena.jpg’) #ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ
img.save(‘d:\\3\\test.gif’)
| from PIL import Image from PIL import ImageDraw Β img = Image.open(‘d:\\3\\lena.jpg’) #ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ img.save(‘d:\\3\\test.gif’) |
ΠΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΠΈ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ²ΠΎΡΠΎΡ Π½Π° ΡΠ³ΠΎΠ»:
from PIL import Image
from PIL import ImageDraw
img = Image.open(‘d:\\3\\lena.jpg’) #ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ
out = img.resize((128, 128))
out = img.rotate(25) # degrees counter-clockwise
out.show()
| from PIL import Image from PIL import ImageDraw Β img = Image.open(‘d:\\3\\lena.jpg’) #ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ out = img.resize((128, 128)) out = img.rotate(25) # degrees counter-clockwise out.show() |
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΠ°Π±ΠΎΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ²Π΅ΡΠ½ΡΡΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅:
ΠΠ° ΡΡΠΎΠΌ ΠΏΠΎΠΊΠ° Π²ΡΠ΅, Π½ΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ.
Π Π°Π±ΠΎΡΠ° Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π² Python
PIL β ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Python, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡ Python Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠ½ Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π€ΡΠ΅Π΄ΡΠΈΠΊΠΎΠΌ ΠΡΠ½Π΄ΠΎΠΌ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ°ΠΌΠΈ. Pillow β ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½ΡΠΉ PIL-ΡΠΎΡΠΊ ΠΈ ΠΏΡΠΎΡΡΠ°Ρ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½Π°Ρ ΠΠ»Π΅ΠΊΡΠΎΠΌ ΠΠ»Π°ΡΠΊΠΎΠΌ ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ°ΠΌΠΈ. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΠΎΠ΄ΡΡΠΊΠΎΠΉ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°:
- Linux: Π ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ Linux Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
pip install Pillow
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠΈΠΏΡΠ° ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΠΌΠΈΠ½Π°Π»:
sudo apt-get update sudo apt-get install python-pip
- Windows: ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ Pillow Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π²Π°ΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ Python. ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΈΠΌΠ΅ΡΡΠ΅ΠΉΡΡ Ρ Π²Π°Ρ Π²Π΅ΡΡΠΈΠ΅ΠΉ Python.
ΠΠ΄Π΅ΡΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ Image, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠ»Π°ΡΡ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π°ΡΠΈΠΌΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ. Π§ΡΠΎΠ±Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Image, Π½Π°Ρ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ:
from PIL import Image
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ:
- ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΏΡΡΠΈ:
Β Β
Βtry
:Β
Β Β Β Β
imgΒ
=
Image.
open
(path)Β
except
IOError:
Β Β Β Β
pass
- ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ . Π‘ΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠ»Π°ΡΡΠ° Image ΠΈΠΌΠ΅ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π°ΡΡΠΈΠ±ΡΡΠΎΠ², ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ
Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°Π·ΠΌΠ΅Ρ.
from
PIL
import
Image
Β
Βfilename
=
"image.png"
with Image.
open
(filename) as image:
Β Β Β Β
width, height
=
image.size
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ: Image.width, Image.height, Image.format, Image.info ΠΈ Ρ. Π.
- Π‘ΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ: ΡΡΠΎΠ±Ρ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π»ΡΠ±ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π²Π½Π΅ΡΠ»ΠΈ Π² ΡΠ°ΠΉΠ» ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΡΠΌΠ°Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
img.save(path,
format
)Β Β Β Β
- ΠΠΎΠ²ΠΎΡΠΎΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΡΠ°ΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ ΡΠ³ΠΎΠ» Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π΄Π»Ρ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
from
PIL
import
Image
Β
Βdef
main():
Β Β Β Β
try
:
Β Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β
img
=
Image.
open
(
"picture.jpg"
)Β
Β Β Β Β Β Β Β Β Β
ΒΒ Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β
img
=
img.rotate(
180
)Β
Β Β Β Β Β Β Β Β Β
ΒΒ Β Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β
img.save(
"rotated_picture.jpg"
)
Β Β Β Β
except
IOError:
Β Β Β Β Β Β Β Β
pass
Β
Βif
__name__
=
=
"__main__"
:
Β Β Β Β
main()
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° rotate Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ»Π°Π³ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ, Π΅ΡΠ»ΠΈ Π·Π°Π΄Π°Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true, ΡΠ°ΡΡΠΈΡΡΠ΅Ρ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΈΠΌ, ΡΡΠΎΠ±Ρ Π²ΠΌΠ΅ΡΡΠΈΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΠ²Π΅ΡΠ½ΡΡΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠ΄Π°, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΡΡ, Π³Π΄Π΅ ΠΌΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, ΡΡΠΎ ΠΈ ΠΌΠΎΠΉ ΡΠ°ΠΉΠ» ΠΊΠΎΠ΄Π° Python, ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠΉ ΠΏΡΡΡ. - ΠΠ±ΡΠ΅Π·ΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: Image.crop (ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ) ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅ΡΡΡΠ΅Ρ
ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΡ (Π»Π΅Π²ΡΡ, Π²Π΅ΡΡ
Π½ΡΡ, ΠΏΡΠ°Π²ΡΡ, Π½ΠΈΠΆΠ½ΡΡ) ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΈΠ· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
from
PIL
import
Image
Β
Βdef
main():
Β Β Β Β
try
:
Β Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β
img
=
Image.
open
(
"picture.jpg"
)
Β Β Β Β Β Β Β Β
width, height
=
img.size
Β Β Β Β Β Β Β Β Β
ΒΒ Β Β Β Β Β Β Β
area
=
(
0
,
0
, width
/
2
, height
/
2
)
Β Β Β Β Β Β Β Β
img
=
img.crop(area)
Β Β Β Β Β Β Β Β Β
ΒΒ Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β
img.save(
"cropped_picture.jpg"
)Β
Β Β Β Β Β Β Β Β Β
ΒΒ Β Β Β
except
IOError:
Β Β Β Β Β Β Β Β
pass
Β
Βif
__name__
=
=
"__main__"
:
Β Β Β Β
main()
- ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: Image.resize (ΡΠ°Π·ΠΌΠ΅Ρ) β Π·Π΄Π΅ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠΈΡΠΈΠ½Ρ ΠΈ Π²ΡΡΠΎΡΡ Π² 2 ΠΊΠΎΡΡΠ΅ΠΆΠ°.
from
PIL
import
Image
Β
Βdef
main():
Β Β Β Β
try
:
Β Β Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β
img
=
Image.
open
(
"picture.jpg"
)
Β Β Β Β Β Β Β Β
width, height
=
img.size
Β Β
ΒΒ Β Β Β Β Β Β Β
img
=
img.resize((width
/
2
, height
/
2
))
Β Β Β Β Β Β Β Β Β
ΒΒ Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β
img.save(
"resized_picture.jpg"
)Β
Β Β Β Β
except
IOError:
Β Β Β Β Β Β Β Β
pass
Β
Βif
__name__
=
=
"__main__"
:
Β Β Β Β
main()
- ΠΡΡΠ°Π²ΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² Π΄ΡΡΠ³ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅: Π²ΡΠΎΡΡΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ 2-ΠΊΠΎΡΡΠ΅ΠΆ (Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π°) ΠΈΠ»ΠΈ 4-ΠΊΠΎΡΡΠ΅ΠΆ (ΡΠ»Π΅Π²Π°, ΡΠ²Π΅ΡΡ
Ρ, ΡΠΏΡΠ°Π²Π°, ΡΠ½ΠΈΠ·Ρ) β Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ°Π·ΠΌΠ΅Ρ Π²ΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π±Π»ΠΎΠΊΠ°, ΠΈΠ»ΠΈ ΠΠ΅Ρ, ΡΡΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ (0, 0).
from
PIL
import
Image
Β
Βdef
main():
Β Β Β Β
try
:
Β Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β
img
=
Image.
open
(
"picture.jpg"
)Β
Β Β Β Β Β Β Β Β Β
ΒΒ Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β
img2
=
Image.
open
(
"picture2.jpg"
)Β
Β Β Β Β Β Β Β Β
img.paste(img2, (
50
,
50
))
Β Β Β Β Β Β Β Β Β
ΒΒ Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β
img.save(
"pasted_picture.jpg"
)
Β Β Β Β Β Β Β Β Β
ΒΒ Β Β Β
except
IOError:
Β Β Β Β Β Β Β Β
pass
Β
Βif
__name__
=
=
"__main__"
:
Β Β Β Β
main()
Β
Β - ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² Π²ΠΈΠ΄Π΅ ΡΠΏΠΈΡΠΊΠ° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ, ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. (ΠΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ β ΡΡΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π² ΡΠΈΡΡΠΎΠ²ΠΎΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ. ΠΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠΊΠΎΡΡΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ΡΡ Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ. ΠΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠΊΠΎΡΡΠΈ. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΊΡΠΏΠΎΠ·ΠΈΡΠΈΠΈ. .)
ΠΈΠ· PIL import Imagedef
main():
Β Β Β Β
try
:
Β Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β
img
=
Image.
open
(
"picture.jpg"
)Β
Β Β Β Β Β Β Β Β Β
ΒΒ Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β
print
img.histogram()
Β Β Β Β Β Β Β Β Β
ΒΒ Β Β Β
except
IOError:
Β Β Β Β Β Β Β Β
pass
Β
Βif
__name__
=
=
"__main__"
:
Β Β Β Β
main()
- Π’ΡΠ°Π½ΡΠΏΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π΄Π°Π΅Ρ Π½Π°ΠΌ Π·Π΅ΡΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
Β Β Β Β
from
PIL
import
Image
Β
Βdef
main():
Β Β Β Β
try
:
Β Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β
img
=
Image.
open
(
"picture.jpg"
)Β
Β Β Β Β Β Β Β Β Β
ΒΒ Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β
transposed_img
=
img.transpose(Image.FLIP_LEFT_RIGHT)
Β Β Β Β Β Β Β Β Β
ΒΒ Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β
transposed_img.save(
"transposed.jpg"
)
Β Β Β Β
except
IOError:
Β Β Β Β Β Β Β Β
pass
Β
Βif
__name__
=
=
"__main__"
:
Β Β Β Β
main()
- Π Π°Π·Π΄Π΅Π»ΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»ΠΎΡΡ. ΠΡΠΈ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ RGB ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΡΠΈ Π½ΠΎΠ²ΡΡ
ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠΏΠΈΡ ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ
ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΠΏΠΎΠ»ΠΎΡ.
from
PIL
import
Image
Β
Βdef
main():
Β Β Β Β
try
:
Β Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β
img
=
Image.
open
(
"picture.jpg"
)Β
Β Β Β Β Β Β Β Β Β
ΒΒ Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β
print
img.split()
Β Β Β Β
except
IOError:
Β Β Β Β Β Β Β Β
pass
Β
Βif
__name__
=
=
"__main__"
:
Β Β Β Β
main()
- tobitmap: ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΡΠ°ΡΡΡΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ X11 (ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ). ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠ°ΡΡΡΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ X11, Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Β«1Β», ΡΠΎ Π΅ΡΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ½ΠΎ-Π±Π΅Π»ΡΡ
ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ 1-Π±ΠΈΡΠ½ΡΠΌ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΌ.
ΠΈΠ· PIL import Imagedef
main():
Β Β Β Β
try
:
Β Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β
img
=
Image.
open
(
"picture.jpg"
)Β
Β Β Β Β Β Β Β Β
print
img.mode
Β Β Β Β Β Β Β Β Β
ΒΒ Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β
print
img.tobitmap()
Β Β Β Β Β Β Β Β Β
ΒΒ Β Β Β Β Β Β Β
print
type
(img.tobitmap())
Β Β Β Β
except
IOError:
Β Β Β Β Β Β Β Β
pass
Β
Βif
__name__
=
=
"__main__"
:
Β Β Β Β
main()
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΈΠ½ΠΈΠ°ΡΡΡΡ. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΌΠΈΠ½ΠΈΠ°ΡΡΡΡ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠ½ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΎΠ½ Π²Π½ΠΎΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° ΠΌΠ΅ΡΡΠ΅ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠΎΠΏΠΈΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅Ρ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΡΡΠΎΡΠΎΠ½ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ.
ΠΈΠ· PIL import Imagedef
main():
Β Β Β Β
try
:
Β Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β
img
=
Image.
open
(
"picture.jpg"
)Β
Β Β Β Β Β Β Β Β Β
ΒΒ Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β
img.thumbnail((
200
,
200
))Β
Β Β Β Β Β Β Β Β Β
ΒΒ Β Β Β Β Β Β Β
img.save(
"thumb.jpg"
)
Β Β Β Β
except
IOError:
Β Β Β Β Β Β Β Β
pass
Β
Βif
__name__
=
=
"__main__"
:
Β Β Β Β
main()
ΠΡΠ° ΡΡΠ°ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° ΠΠΎΡ ΠΈΡΠΎΠΌ ΠΠ³Π°ΡΠ²Π°Π»ΠΎΠΌ . ΠΡΠ»ΠΈ Π²Ρ ΠΊΠ°ΠΊ GeeksforGeeks ΠΈ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ Π²Π½Π΅ΡΡΠΈ ΡΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠ°ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ contribute.geeksforgeeks.org ΠΈΠ»ΠΈ ΠΏΠΎ ΠΏΠΎΡΡΠ΅ ΡΡΠ°ΡΡΠΈ [email protected]. Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ²ΠΎΡ ΡΡΠ°ΡΡΡ, ΠΏΠΎΡΠ²Π»ΡΡΡΡΡΡΡ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ GeeksforGeeks, ΠΈ ΠΏΠΎΠΌΠΎΠ³ΠΈΡΠ΅ Π΄ΡΡΠ³ΠΈΠΌ Π²ΡΠ½Π΄Π΅ΡΠΊΠΈΠ½Π΄Π°ΠΌ.
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΈΡΠΈΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΠ΅ ΡΡΠΎ-ΡΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΏΠΎ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΠΌΠΎΠΉ Π²ΡΡΠ΅ ΡΠ΅ΠΌΠ΅.
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠ΅ ΠΏΠΎΡΡΡ:
Π Π°Π±ΠΎΡΠ° Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π² Python
0.00 (0%) 0 votes
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° PIL. Π Π°Π±ΠΎΡΠ° Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π² Python
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π² Python Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ PIL (Python Image Library). Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ. ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΊΠ°ΡΠΈΠ²Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» PIL-1.2.6.win32-py2.6.exe Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π° Π·Π°ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΠΊΠ°ΠΉΡΠ΅ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΡ Π΄Π»Ρ Π²Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ. ΠΡΠΎΡΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡ ΠΈ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ Π½Π΅ Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ. Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΡΠ·Π½Π°ΡΡ ΡΠ΄Π°ΡΠ½ΠΎ Π»ΠΈ ΠΎΠ½Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»Π°ΡΡ, Π² ΠΎΠΊΠ½Π΅ Python Shell ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° IDLE Π½Π°Π±Π΅ΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄.
>>> from PIL import Image
>>> Image.VERSION
'1.1.6'
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΎΡΠ²Π΅Ρ, Π½Π΅ Π²Π°ΠΆΠ½ΠΎ Π΅ΡΠ»ΠΈ Π²Π΅ΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π±ΡΠ΄Π΅Ρ Π΄ΡΡΠ³Π°Ρ, Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΠ²Π΅Ρ Π° Π½Π΅ ΠΎΡΠΈΠ±ΠΊΡ. ΠΠΎΠ»ΡΡΠΈΠ² Π²Π΅ΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½Π΅ΠΉ, Π·Π½Π°ΡΠΈΡ ΠΎΠ½Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»Π°ΡΡ.
Π£ΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΡΠΈ Π»Π΅Ρ ΠΌΡ ΠΏΡΠΎΠ΄Π°Π΅ΠΌ ΠΏΠΎΠ΄Π°ΡΠΎΡΠ½ΡΡ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΡ ΠΎΠΏΡΠΎΠΌ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΡΠΏΠΈΡΡ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΠΏΠΎΠ΄Π°ΡΠΎΡΠ½Π°Ρ ΠΏΠΎ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΈΠΌ ΡΠ΅Π½Π°ΠΌ. Π ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΡΠΎΡΠ½ΠΈ Π²ΠΈΠ΄ΠΎΠ² ΠΏΠΎΠ΄Π°ΡΠΎΡΠ½ΠΎΠΉ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ.
ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π³ΠΎΡΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
ΠΠ»Ρ ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ°ΠΉΠ»Π° Ρ Π³ΠΎΡΠΎΠ²ΡΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ open(). Π€ΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΡΠ»ΠΈ ΠΎΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ» Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ, Π²ΠΎΠ·Π±ΡΠΆΠ΄Π°Π΅ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ IOError. Π€ΠΎΡΠΌΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ:
open(<ΠΡΡΡ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ>[, mode='r'])
Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠΉ ΠΏΡΡΡ ΠΈΠ»ΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΡΡ ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΡΠΊΡΠΎΠ΅ΠΌ ΡΠ°ΠΉΠ» Forest-large.jpg, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π² ΡΠΎΠΌ ΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, ΡΡΠΎ ΠΈ ΡΠ°ΠΌ ΡΠΊΡΠΈΠΏΡ.
>>> img = Image.open("Forest-large.jpg")
ΠΠΌΠ΅ΡΡΠΎ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΏΡΡΠΈ ΠΊ ΡΠ°ΠΉΠ»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΎΡΠΊΡΡΡΡΠΉ Π² Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
>>> f = open("foto.gif", "rb") # ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ» Π² Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅
>>> img = Image.open(f) # ΠΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ°ΠΉΠ»Π°
>>> img.size # ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
(800, 600)
>>> f.close() # ΠΠ°ΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ»
ΠΡΠ»ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π·Π°Π³ΡΡΠΆΠ΅Π½ΠΎ Π² ΠΊΠ°ΠΊΡΡ-Π»ΠΈΠ±ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ StringIO ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅Π³ΠΎ Π² ΡΡΠ½ΠΊΡΠΈΡ open(). Π―Π·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π²ΠΈΠ΄Π΅ΠΎ, ΠΌΡΠ·ΡΠΊΠΎΠΉ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ. Π Π°Π±ΠΎΡΠ°Ρ Π½Π°Π΄ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π»ΠΈΠ½ΡΡΡΡ Π²ΡΠ΅ Π³Π»ΡΠ±ΠΆΠ΅ ΠΈ Π½Π° ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠΌ ΡΠΊΡΠ°Π½Π΅ Π½ΠΎΡΡΠ±ΡΠΊΠ° Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠΈΡΠ°ΡΡ Π΄Π»ΠΈΠ½Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π§ΡΠΎΠ±Ρ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΡΠ²ΠΎΡ Π·ΠΎΠ½Ρ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΊΠΎΠ΄Π° Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π²ΡΠΎΡΠΎΠΉ ΠΌΠΎΠ½ΠΈΡΠΎΡ ΠΊ Π½ΠΎΡΡΠ±ΡΠΊΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΆΠ΅ Π½Π° ΡΠΈΡΠΎΠΊΠΎΠΌ 22 Π΄ΡΠΉΠΌΠΎΠ²ΠΎΠΌ ΠΌΠΎΠ½ΠΈΡΠΎΡΠ΅. Π’ΠΎΠ³Π΄Π° ΠΏΡΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π²ΠΈΠ΄Π΅ΠΎ ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π½Π° Python Π²Π°Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π»ΡΡΡΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ Π½Π° ΡΠΈΡΠΎΠΊΠΎΠΌ ΠΌΠΎΠ½ΠΈΡΠΎΡΠ΅ ΡΠ΅ΠΌ Π½Π° Π½ΠΎΡΡΠ±ΡΠΊΠ΅.
ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ· ΡΡΡΠΎΠΊΠΈ
>>> f = open("foto.gif", "rb") # ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ» Π² Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅
>>> i = f.read() # Π‘ΠΎΡ
ΡΠ°Π½ΡΠ΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ
>>> f.close() # ΠΠ°ΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ»
>>> import StringIO # ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ StringIO
>>> img = Image.open(StringIO.StringIO(i)) # ΠΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ
>>> img.format # ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΎΡΠΌΠ°Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
'GIF'
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΡΠΎΡΠΌΠ°Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. Π‘Π»Π΅Π΄ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ°ΠΉΠ»Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ open() ΡΠ°ΠΌΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΡΡΠ°Π·Ρ Π² ΠΏΠ°ΠΌΡΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π°. ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠ°Π³ΡΡΠ·ΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ load(). Π₯ΠΎΡΡ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ. ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 1.1.6 ΠΌΠ΅ΡΠΎΠ΄ load() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΏΠΈΠΊΡΠ΅Π»ΡΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
Python. Π Π°Π±ΠΎΡΠ° Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π² tkinter.
ΠΠ° ΡΡΠΎΠΊΠ΅Β Python. Π Π°Π±ΠΎΡΠ° Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΌΡ Ρ Π²Π°ΠΌΠΈ Π½Π°ΡΡΠΈΠ»ΠΈΡΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΡΠΊΠΎ ΠΈΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ Ρ Π½ΠΈΠΌΠΈ. ΠΡΠΎ ΠΌΡ Π΄Π΅Π»Π°Π»ΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ PIL.Β ΠΠ° ΡΡΠΎΠΊΠ΅Β Python. GUI ΠΌΡ Ρ Π²Π°ΠΌΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΒ tkinter ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈ Π²ΠΈΠ½Π΄ΠΎΠ²ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ: Π²ΡΡΠΊΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΡΠΊΠΈ, ΡΠ»Π°ΠΆΠΊΠΈ, ΠΈ ΠΏΡΠΎΡΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ: Π° Π½Π΅Π»ΡΠ·Ρ Π»ΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈΒ tkinter ΠΊΠ°ΠΊ-ΡΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΠΈΠ½Π΄ΠΎΠ²ΡΡ ΡΠΎΡΠΌΡ? ΠΠΎΠΆΠ½ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π²ΠΎΡ ΡΠ°ΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°:
import tkinter
from PIL import Image, ImageTk
root = tkinter.Tk()
# ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°Π±ΠΎΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ
frame = tkinter.Frame(root)
frame.grid()
#ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΌΠ΅ΡΠΊΡ
label = tkinter.Label(frame, text=»Hello, World!»).grid(row=1,column=1)
# Π²ΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ
but = tkinter.Button(frame, text=»ΠΠ½ΠΎΠΏΠΊΠ°»).grid(row=1, column=2)
#ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
canvas = tkinter.Canvas(root, height=400, width=700)
image = Image.open(«d:/3/Dscn0116.jpg»)
photo = ImageTk.PhotoImage(image)
image = canvas.create_image(0, 0, anchor=’nw’,image=photo)
canvas.grid(row=2,column=1)
root.mainloop()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| import tkinter from PIL import Image, ImageTk Β root = tkinter.Tk() Β # ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°Π±ΠΎΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ frame = tkinter.Frame(root) frame.grid() Β #ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΌΠ΅ΡΠΊΡ label = tkinter.Label(frame, text=»Hello, World!»).grid(row=1,column=1) Β Β # Π²ΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ but = tkinter.Button(frame, text=»ΠΠ½ΠΎΠΏΠΊΠ°»).grid(row=1, column=2) Β #ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ canvas = tkinter.Canvas(root, height=400, width=700) image = Image.open(«d:/3/Dscn0116.jpg») photo = ImageTk.PhotoImage(image) image = canvas.create_image(0, 0, anchor=’nw’,image=photo) canvas.grid(row=2,column=1) root.mainloop() |
Π²ΡΠ΄Π°ΡΡ Π²ΠΎΡ ΡΠ°ΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ:
Π§ΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, PIL Π·Π΄Π΅ΡΡ Π½ΡΠΆΠ΅Π½, ΡΡΠΎΠ±Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΈΠΏΠ° jpg, gif-Ρ ΠΈ png ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ ΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ:
import tkinter
root = tkinter.Tk()
# ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°Π±ΠΎΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ
frame = tkinter.Frame(root)
frame.grid()
#ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΌΠ΅ΡΠΊΡ
label = tkinter.Label(frame, text=»Hello, World!»).grid(row=1,column=1)
# Π²ΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ
but = tkinter.Button(frame, text=»ΠΠ½ΠΎΠΏΠΊΠ°»).grid(row=1, column=2)
#ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
canvas = tkinter.Canvas(root, height=400, width=700)
img = tkinter.PhotoImage(file = ‘d:/3/Dscn0116.png’)
image = canvas.create_image(0, 0, anchor=’nw’,image=img)
canvas.grid(row=2,column=1)
root.mainloop()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| import tkinter Β root = tkinter.Tk() Β # ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°Π±ΠΎΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ frame = tkinter.Frame(root) frame.grid() Β #ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΌΠ΅ΡΠΊΡ label = tkinter.Label(frame, text=»Hello, World!»).grid(row=1,column=1) Β Β # Π²ΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ but = tkinter.Button(frame, text=»ΠΠ½ΠΎΠΏΠΊΠ°»).grid(row=1, column=2) Β #ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ canvas = tkinter.Canvas(root, height=400, width=700) img = tkinter.PhotoImage(file = ‘d:/3/Dscn0116.png’) image = canvas.create_image(0, 0, anchor=’nw’,image=img) canvas.grid(row=2,column=1) root.mainloop() |
Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ ΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅:
import tkinter
from PIL import Image, ImageTk
root = tkinter.Tk()
# ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°Π±ΠΎΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ
frame = tkinter.Frame(root)
frame.grid()
# ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΌΠ΅ΡΠΊΡ
label = tkinter.Label(frame, text=»Hello, World!»).grid(row=1, column=1)
image = Image.open(«d://1//DSCN1128.png»)
photo = ImageTk.PhotoImage(image)
def my_event_handler():
print(«my_event_handler»)
image = Image.open(«d://1//original.jpg»)
photo = ImageTk.PhotoImage(image)
image = canvas.create_image(0, 0, anchor=’nw’, image=photo)
canvas.grid(row=2, column=1)
# Π²ΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ
but = tkinter.Button(frame, text=»ΠΠ½ΠΎΠΏΠΊΠ°», command=my_event_handler).grid(row=1, column=2)
# ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
canvas = tkinter.Canvas(root, height=400, width=700)
image = canvas.create_image(0, 0, anchor=’nw’, image=photo)
canvas.grid(row=2, column=1)
root.mainloop()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| import tkinter from PIL import Image, ImageTk Β root = tkinter.Tk() Β # ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°Π±ΠΎΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ frame = tkinter.Frame(root) frame.grid() Β # ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΌΠ΅ΡΠΊΡ label = tkinter.Label(frame, text=»Hello, World!»).grid(row=1, column=1) Β image = Image.open(«d://1//DSCN1128.png») photo = ImageTk.PhotoImage(image) Β Β def my_event_handler(): Β Β Β Β print(«my_event_handler») Β Β Β Β image = Image.open(«d://1//original.jpg») Β Β Β Β photo = ImageTk.PhotoImage(image) Β Β Β Β image = canvas.create_image(0, 0, anchor=’nw’, image=photo) Β Β Β Β canvas.grid(row=2, column=1) Β Β # Π²ΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ but = tkinter.Button(frame, text=»ΠΠ½ΠΎΠΏΠΊΠ°», command=my_event_handler).grid(row=1, column=2) Β # ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ canvas = tkinter.Canvas(root, height=400, width=700) image = canvas.create_image(0, 0, anchor=’nw’, image=photo) canvas.grid(row=2, column=1) root.mainloop() |
ΠΠΎ Π½Π΅ ΡΡΡ ΡΠΎ Π±ΡΠ»ΠΎ. ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ. Π₯ΠΎΡΡ, ΠΊΠ°Π·Π°Π»ΠΎΡΡ Π±Ρ, Π²ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΠΈ Π½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½Π°ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ print Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ Π² ΠΎΠΊΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. Π ΡΠ΅ΠΌ ΠΆΠ΅ Π΄Π΅Π»ΠΎ? Π Π΄Π΅Π»ΠΎ Π² ΡΠ±ΠΎΡΡΠΈΠΊΠ΅ ΠΌΡΡΠΎΡΠ° (garbage collector). ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΡ Π²ΡΡΠ»ΠΈ ΠΈΠ·Β my_event_handler, Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΡ ΠΆΠ΅ ΡΠ½ΠΈΡΡΠΎΠΆΠ°ΡΡΡΡ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠ°. ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ Π½Π° ΡΠΎΡΠΌΠ΅ ΡΡ ΠΆΠ΅ ΡΠ°ΠΌΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ, ΡΡΠΎ ΠΈ Π΄ΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ. ΠΠ°ΠΊ ΠΆΠ΅ Π±ΡΡΡ? ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΎΠ±ΡΡΠ²ΠΈΠΌ ΠΊΠ»Π°ΡΡ, ΠΏΡΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΎΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Ρ ΡΠ°Π½ΡΡΡΡ Π² Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΡ :
import tkinter
from PIL import Image, ImageTk
class App:
def __init__(self):
self.root = tkinter.Tk()
# ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°Π±ΠΎΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ
self.frame = tkinter.Frame(self.root)
self.frame.grid()
# ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΌΠ΅ΡΠΊΡ
self.label = tkinter.Label(self.frame, text=»Hello, World!»).grid(row=1, column=1)
self.image = Image.open(«d://1//DSCN1128.png»)
self.photo = ImageTk.PhotoImage(self.image)
# Π²ΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ
self.but = tkinter.Button(self.frame, text=»ΠΠ½ΠΎΠΏΠΊΠ°», command=self.my_event_handler).grid(row=1, column=2)
# ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
self.canvas = tkinter.Canvas(self.root, height=600, width=700)
self.c_image = self.canvas.create_image(0, 0, anchor=’nw’, image=self.photo)
self.canvas.grid(row=2, column=1)
self.root.mainloop()
def my_event_handler(self):
print(«my_event_handler»)
self.image = Image.open(«d://1//original.jpg»)
self.photo = ImageTk.PhotoImage(self.image)
self.c_image = self.canvas.create_image(0, 0, anchor=’nw’, image=self.photo)
self.canvas.grid(row=2, column=1)
app= App()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| import tkinter from PIL import Image, ImageTk Β class App: Β Β Β Β def __init__(self): Β Β Β Β Β Β Β Β self.root = tkinter.Tk() Β Β Β Β Β Β Β Β Β # ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°Π±ΠΎΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ Β Β Β Β Β Β Β Β self.frame = tkinter.Frame(self.root) Β Β Β Β Β Β Β Β self.frame.grid() Β Β Β Β Β Β Β Β Β # ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΌΠ΅ΡΠΊΡ Β Β Β Β Β Β Β Β self.label = tkinter.Label(self.frame, text=»Hello, World!»).grid(row=1, column=1) Β Β Β Β Β Β Β Β Β self.image = Image.open(«d://1//DSCN1128.png») Β Β Β Β Β Β Β Β self.photo = ImageTk.PhotoImage(self.image) Β Β Β Β Β Β Β Β Β # Π²ΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Β Β Β Β Β Β Β Β self.but = tkinter.Button(self.frame, text=»ΠΠ½ΠΎΠΏΠΊΠ°», command=self.my_event_handler).grid(row=1, column=2) Β Β Β Β Β Β Β Β Β # ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Β Β Β Β Β Β Β Β self.canvas = tkinter.Canvas(self.root, height=600, width=700) Β Β Β Β Β Β Β Β self.c_image = self.canvas.create_image(0, 0, anchor=’nw’, image=self.photo) Β Β Β Β Β Β Β Β self.canvas.grid(row=2, column=1) Β Β Β Β Β Β Β Β self.root.mainloop() Β Β Β Β Β def my_event_handler(self): Β Β Β Β Β Β Β Β print(«my_event_handler») Β Β Β Β Β Β Β Β self.image = Image.open(«d://1//original.jpg») Β Β Β Β Β Β Β Β self.photo = ImageTk.PhotoImage(self.image) Β Β Β Β Β Β Β Β self.c_image = self.canvas.create_image(0, 0, anchor=’nw’, image=self.photo) Β Β Β Β Β Β Β Β self.canvas.grid(row=2, column=1) Β app= App() |
Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
Β
PIL Π½Π° Python ΠΎΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΊ ΡΠ»ΠΎΠΆΠ½ΠΎΠΌΡ / Π₯Π°Π±Ρ
Π§ΡΠΎΠ±Ρ Π΄ΠΎΠΉΡΠΈ Π΄ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΡΠΎΠΈΡ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΡ Π΅ΠΌΡ, Ρ ΡΠ΅Π³ΠΎ Ρ ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ Π½Π°ΡΠ°ΡΡ.
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠ² ΡΠ²Π΅ΡΠΎΠ²:
ΠΠ»Ρ ΡΡΠ°ΡΡΠ° Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π²Π° ΠΌΠΎΠ΄ΡΠ»Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ:
from PIL import Image, ImageDraw
ΠΠ°ΡΡΡΠΎΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΡΠΎΡΡΠ½ΠΎΠΉ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ:
image = Image.open('test.jpg') # ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
draw = ImageDraw.Draw(image) # Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
width = image.size[0] # ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΠΈΡΠΈΠ½Ρ
height = image.size[1] # ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ Π²ΡΡΠΎΡΡ
pix = image.load() # ΠΡΠ³ΡΡΠΆΠ°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ
ΠΡΠΈΡΡΡΠΏΠΈΠΌ
ΠΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅ΠΌ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ RGB. Π’Π°ΠΊΠΆΠ΅ PIL ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΎΡΠΌΠ°ΡΠ°ΠΌΠΈ 1, L, P, RGB, RGBA, CMYK, YCbCr, LAB, HSV, I, F.
ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°ΡΡΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅: (x,y),(red, green, blue), Π³Π΄Π΅ x,y β ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ, Π° ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ RGB Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ 0 Π΄ΠΎ 255. Π’ΠΎ Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ 8-Π±ΠΈΡΠ½ΡΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
ΠΡΡΠ΅Π½ΠΎΠΊ ΡΠ΅ΡΠΎΠ³ΠΎ
Π‘Π΅ΡΡΠΉ ΠΎΡΡΠ΅Π½ΠΎΠΊ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ°Π²Π΅Π½ΡΡΠ²Π° Π²ΡΠ΅Ρ ΠΏΠ°Π»ΠΈΡΡ ΡΠ²Π΅ΡΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠ΅Π΄Π½Π΅Π΅ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΠΎ Π²ΡΠ΅Ρ ΡΡΡΡ ΠΏΡΠ½ΠΊΡΠ°Ρ :
for x in range(width):
for y in range(height):
r = pix[x, y][0] #ΡΠ·Π½Π°ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ° ΠΏΠΈΠΊΡΠ΅Π»Ρ
g = pix[x, y][1] #Π·Π΅Π»ΡΠ½ΠΎΠ³ΠΎ
b = pix[x, y][2] #ΡΠΈΠ½Π΅Π³ΠΎ
sr = (r + g + b) // 3 #ΡΡΠ΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
draw.point((x, y), (sr, sr, sr)) #ΡΠΈΡΡΠ΅ΠΌ ΠΏΠΈΠΊΡΠ΅Π»Ρ
image.save("result.jpg", "JPEG") #Π½Π΅ Π·Π°Π±ΡΠ²Π°Π΅ΠΌ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
ΠΠ΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π½ΡΠ°Π½ΡΠ§Π΅Π»ΠΎΠ²Π΅ΡΠ΅ΡΠΊΠΈΠΉ Π³Π»Π°Π· ΡΠ°Π·Π½ΡΠΉ ΡΠΏΠ΅ΠΊΡΡ ΡΠ²Π΅ΡΠΎΠ² Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ. Π’ΠΎΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΡΠ»Ρ Π²Π°ΠΌ Π½ΠΈΠΊΡΠΎ Π½Π΅ Π΄Π°ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²ΠΎΡΠΏΡΠΈΡΡΠΈΠ΅ ΡΠ²Π΅ΡΠΎΠ² ΡΠ°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ Ρ Π²ΡΠ΅Ρ ΡΠ°Π·Π½ΠΎΠ΅, Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΡΡ ΠΈ ΡΡΡ.
ΠΠ½Π²Π΅ΡΡΠΈΡ
ΠΠ½Π²Π΅ΡΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΡΡΡΠΌ Π²ΡΡΠ΅ΡΠ° ΠΈΠ· 255 ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ²Π΅ΡΠ°:
for x in range(width):
for y in range(height):
r = pix[x, y][0]
g = pix[x, y][1]
b = pix[x, y][2]
draw.point((x, y), (255 - r, 255 - g, 255 - b))
ΠΠ½Π²Π΅ΡΡΠΈΡ ΠΎΡΡΠ΅Π½ΠΊΠ° ΡΠ΅ΡΠΎΠ³ΠΎ
Π‘ΠΎΠ²ΠΌΠ΅ΡΠ°Ρ Π΄Π²Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
for x in range(width):
for y in range(height):
r = pix[x, y][0]
g = pix[x, y][1]
b = pix[x, y][2]
sr = (r + g + b) // 3
draw.point((x, y), (255 - sr, 255 - sr, 255 - sr))
ΠΡΠ±ΠΎΡΠΎΡΠ½Π°Ρ ΠΈΠ½Π²Π΅ΡΡΠΈΡ ΠΎΡΡΠ΅Π½ΠΊΠ° ΡΠ΅ΡΠΎΠ³ΠΎ
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΡΠΎΠ³ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Ρ Π²ΠΎΠ·ΡΠΌΡ Π·Π° 100:
for x in range(width):
for y in range(height):
r = pix[x, y][0]
g = pix[x, y][1]
b = pix[x, y][2]
if (r+g+b)>100: #Π΅ΡΠ»ΠΈ ΡΡΠΌΠΌΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π±ΠΎΠ»ΡΡΠ΅ 100 , ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΈΠ½Π²Π΅ΡΠΈΡΡ
sr = (r + g + b) // 3
draw.point((x, y), (255-sr, 255-sr, 255-sr))
else: #ΠΈΠ½Π°ΡΠ΅ ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΎΡΡΠ΅Π½ΠΎΠΊ ΡΠ΅ΡΠΎΠ³ΠΎ
sr = (r + g + b) // 3
draw.point((x, y), (sr, sr, sr))
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΠ°ΡΡΡΡ Ρ Ρ ΠΎΡΠ΅Π» Π±Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π±ΠΎΠ»Π΅Π΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡΡ ΠΊ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΏΡΡΡΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ Π΅Π³ΠΎ Π½Π° ΠΎΠ±Π»Π°ΡΡΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ DFS Π² Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ Python Pillow (ΡΠΎΡΠΊ PIL) ~ PythonRu
PIL, ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Python Imaging Library, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ. Π£ PIL Π½Π΅ Π±ΡΠ»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΡ Ρ 2009. ΠΠΎΡΡΠΎΠΌΡ, Π΄ΠΎΠ±ΡΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° Pillow Π΅ΡΠ΅ ΡΠ°Π·. ΠΡΠ° ΡΡΠ°ΡΡΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΡΠ·Π½Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Pillow.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Pillow?
Pillow
ΡΡΠΎ ΡΠΎΡΠΊ PIL
(Python Image Library), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ ΠΠ»Π΅ΠΊΡΠ° ΠΠ»Π°ΡΠΊΠ° ΠΈ Π΄ΡΡΠ³ΠΈΡ
ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ². ΠΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΊΠΎΠ΄Π΅ PIL , Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΈΠ»Π°ΡΡ Π² ΡΠ»ΡΡΡΠ΅Π½Π½ΡΡ, ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ. ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ,ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΈ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΡΠΎΡΠΌΠ°ΡΠΎΠ² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠ½ΠΎΠ³ΠΎΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ PIL.
ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Pillow
ΠΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Pillow, Π½ΡΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π΅. Pillow Π΄ΠΎΡΡΡΠΏΠ½Π° Π΄Π»Ρ Windows, Mac OS X ΠΈ Linux. Π‘Π°ΠΌΠ°Ρ βΡΠ²Π΅ΠΆΠ°Ρβ Π²Π΅ΡΡΠΈΡ β ΡΡΠΎ Π²Π΅ΡΡΠΈΡ β5.3.0β ΠΈ ΠΎΠ½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π½Π° python 2.7
ΠΈ Π²ΡΡΠ΅. ΠΠ»Ρ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ Pillow Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ Windows
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ easy_install
ΠΈΠ»ΠΈ pip
:
easy_install Pillow
pip install Pillow
ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Pillow Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ
Linux
ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅:
$ sudo pip install Pillow
Π ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Pillow Π½Π° Mac OS X
Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ XCode, Π° Π·Π°ΡΠ΅ΠΌ Homebrew. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Homebrew ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅:
$ brew install libtiff libjpeg webp littlecms
$ sudo pip install Pillow
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Pillow ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Pillow ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈ Π½Π°Π±Π΅ΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠ΅:
$ python
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from PIL import Image
ΠΡΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ½ΠΎΠ²Π° >>>
, Π·Π½Π°ΡΠΈΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ Pillow ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ.
Π€ΠΎΡΠΌΠ°ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ Pillow, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠΊΠ°ΠΆΠ΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠΈΠΏΡ ΡΠ°ΠΉΠ»ΠΎΠ²: BMP, EPS, GIF, IM, JPEG, MSP, PCX PNG, PPM, TIFF, WebP, ICO, PSD, PDF
. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΠΏΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π΄ΡΡΠ³ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ
ΡΠΈΠΏΠΎΠ² ΡΠ°ΠΉΠ»Π° ΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π½ΠΈΡ
, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ ΠΊ Pillow.
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Pillow Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ, Π΄Π»Ρ Π½Π°ΡΠ°Π»Π°, ΡΠΊΠ°ΡΠ°Π΅ΠΌ ΠΎΠ΄Π½ΠΎ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΠΏΡΠΎΠΏΡΡΡΠΈΡΠ΅ ΡΡΠΎΡ ΡΠ°Π³, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅. Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«LennaΒ» ΠΈΠ»ΠΈ Β«LenaΒ». ΠΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Ρ ΠΏΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠΎΡΡΠΎ Π·Π°ΠΉΠ΄ΠΈΡΠ΅ ΡΡΠ΄Π° ΠΈ Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠ»ΠΈ Π²Ρ Π½Π°ΠΆΠΌΠ΅ΡΠ΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡΡ ΠΊΠ°ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ 512Γ512.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Pillow
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΠ΅ΡΡ Π½Π° ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ ΠΊΠ°Π½Π°Π»Ρ
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ Image
. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ. ΠΡΡΠ΅ΠΌ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ², ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄ΡΡΠ³ΠΈΡ
ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, Π»ΠΈΠ±ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ Π½ΡΠ»Ρ. ΠΠΌΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Pillow, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
from PIL import Image
ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠ½ΠΊΡΠΈΡΠΌ.
myimage = Image.open(filename)
myimage.load()
ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ open ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ°ΠΉΠ»Π° Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, Π° Π·Π°ΡΠ΅ΠΌ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΠΏΠΎΠΌΠΎΡΡΡ myfile.load()
. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½ΠΎ, Ρ Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ. Π§Π°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±Π»ΠΎΠΊ try except
ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ. Π§ΡΠΎΠ±Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ try except
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅:
from PIL import Image, ImageFilter
try:
original = Image.open("Lenna.png")
except FileNotFoundError:
print("Π€Π°ΠΉΠ» Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½")
ΠΠΎΠ³Π΄Π° ΠΌΡ ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ»Ρ Ρ Π΄ΠΈΡΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ open()
, Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΡΠΎΡΠΌΠ°Ρ ΡΠ°ΠΉΠ»Π°. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΎΡΠΌΠ°Ρ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠΈ ΡΠ°ΠΉΠ»Π°. Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Image
, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ°ΠΉΠ»Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°ΡΡΠΈΠ±ΡΡ format
.
print("The size of the Image is: ")
print(original.format, original.size, original.mode)
ΠΡΡΠΈΠ±ΡΡ size
β ΡΡΠΎ tuple
(ΠΊΠΎΡΡΠ΅ΠΆ), ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠΈΡΠΈΠ½Ρ ΠΈ Π²ΡΡΠΎΡΡ (Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΡ
). ΠΠ±ΡΡΠ½ΡΠ΅ mode
: L
Π΄Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΎΡΡΠ΅Π½ΠΊΠ°ΠΌΠΈ ΡΠ΅ΡΠΎΠ³ΠΎ, RGB
Π΄Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΈΡΡΠΈΠ½Π½ΡΠΌ ΡΠ²Π΅ΡΠ½ΡΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ CMYK
Π΄Π»Ρ ΠΏΠ΅ΡΠ°ΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΊΠΎΠ΄Π° Π²ΡΡΠ΅, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ (Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Lenna.png):
The size of t he Image is:
PNG, (512, 512), RGB
Π Π°Π·ΠΌΡΡΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
ΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π°Π³ΡΡΠ·ΠΈΡ ΠΈ ΡΠ°Π·ΠΌΠΎΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΆΠ΅ΡΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠ°.
from PIL import Image, ImageFilter
try:
original = Image.open("Lenna.png")
except FileNotFoundError:
print("Π€Π°ΠΉΠ» Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½")
blurred = original.filter(ImageFilter.BLUR)
original.show()
blurred.show()
blurred.save("blurred.png")
Π Π°Π·ΠΌΡΡΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π§ΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ show()
. ΠΡΠ»ΠΈ Π²Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ImageMagick
ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΠ½ΠΎΠ²Π°.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΈΠ½ΠΈΠ°ΡΡΡ
ΠΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΌΠΈΠ½ΠΈΠ°ΡΡΡΡ Π΄Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠΈΠ½ΠΈΠ°ΡΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΡΠΌΠ΅Π½ΡΡΠ΅Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ Π²ΡΠ΅ ΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π²ΡΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
from PIL import Image
size = (128, 128)
saved = "lenna.jpeg"
img = Image.open("Lenna.png")
img.thumbnail(size)
img.save(saved)
img.show()
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π² ΠΌΠΈΠ½ΠΈΠ°ΡΡΡΠ΅:
Π€ΠΈΠ»ΡΡΡΡ Π² Pillow
Π ΠΌΠΎΠ΄ΡΠ»Π΅ Pillow
ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π½Π°Π±ΠΎΡ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
ΡΠΈΠ»ΡΡΡΠΎΠ² Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ:
- BLUR
- CONTOUR
- DETAIL
- EDGE_ENHANCE
- EDGE_ENHANCE_MORE
- EMBOSS
- FIND_EDGES
- SMOOTH
- SMOOTH_MORE
- SHARPEN
Π Π½Π°ΡΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠ»ΡΡΡ CONTOUR
ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π°ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡ ΠΊ Π½Π΅ΠΌΡ ΡΠΈΠ»ΡΡΡ
from PIL import Image, ImageFilter
img = Image.open("Lenna.png")
img = img.filter(ImageFilter.CONTOUR)
img.save("LennaC" + ".jpg")
img.show()
ΠΠΈΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Π½ΡΠΌ ΡΠΈΠ»ΡΡΡΠΎΠΌ CONTOUR
:
10 ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Python
Π‘Π΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ ΠΌΠΈΡ ΠΏΠΎΠ»ΠΎΠ½ Π΄Π°Π½Π½ΡΡ , ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°ΡΡΡ ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ . ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΡΡΠΈ ΡΠΈΡΡΠΎΠ²ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ — ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ»ΡΡΡΠΈΡΡ ΠΈΡ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ»ΠΈ ΠΈΠ·Π²Π»Π΅ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π°.
ΠΠ±ΡΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π΄ΠΈΡΠΏΠ»Π΅ΠΈ; Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠ°Π΄ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΠ΅ΡΠ΅Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅, ΠΏΠΎΠ²ΠΎΡΠΎΡ ΠΈ Ρ.Π΄ .; ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠ²; Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ; ΠΈ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.Python — ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ Π΄Π»Ρ ΡΡΠΈΡ ΡΠΈΠΏΠΎΠ² Π·Π°Π΄Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ·-Π·Π° Π΅Π³ΠΎ ΡΠ°ΡΡΡΡΠ΅ΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ·ΡΠΊΠ° Π½Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² Π΅Π³ΠΎ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ΅.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ 10 Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Python Π΄Π»Ρ Π·Π°Π΄Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ Π»Π΅ΠΆΠ°ΡΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Π΅ Π΄Π°Π½Π½ΡΡ .
1. ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ scikit
scikit -image — ΡΡΠΎ ΠΏΠ°ΠΊΠ΅Ρ Python Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ NumPy.ΠΠ½ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡΡ , ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ . ΠΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ°Ρ ΠΈ ΠΏΠΎΠ½ΡΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π°ΠΆΠ΅ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ ΠΏΠ»ΠΎΡ ΠΎ Π·Π½Π°ΠΊΠΎΠΌ Ρ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Python. ΠΠΎΠ΄ Π²ΡΡΠΎΠΊΠΎΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ, ΠΏΡΠΎΡΠ΅Π» ΡΠΊΡΠΏΠ΅ΡΡΠ½ΡΡ ΠΎΡΠ΅Π½ΠΊΡ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ Π΄ΠΎΠ±ΡΠΎΠ²ΠΎΠ»ΡΡΠ΅Π².
ΡΠ΅ΡΡΡΡΠΎΠ²
scikit-image ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ°ΠΊΠ΅Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ skimage , ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²Π½ΡΡΡΠΈ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ.
Π€ΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ:
import matplotlib.pyplot as plt
% matplotlib inline
ΠΈΠ· Π΄Π°Π½Π½ΡΡ ΠΈΠΌΠΏΠΎΡΡΠ° skimage, ΡΠΈΠ»ΡΡΡΡΠ΅Ρ
image = data.coins () # ... ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ² NumPy!
ΠΊΡΠ°Ρ = filters.sobel (ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅)
plt.imshow (ΠΊΡΠ°Ρ, cmap = 'ΡΠ΅ΡΡΠΉ')
Π‘ΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ match_template:
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π² Π³Π°Π»Π΅ΡΠ΅Π΅.
2. NumPy
NumPy — ΠΎΠ΄Π½Π° ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Python, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ².ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ — ΡΡΠΎ, ΠΏΠΎ ΡΡΡΠΈ, ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² NumPy, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΏΠΈΠΊΡΠ΅Π»ΠΈ ΡΠΎΡΠ΅ΠΊ Π΄Π°Π½Π½ΡΡ . ΠΠΎΡΡΠΎΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ NumPy, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π½Π°ΡΠ΅Π·ΠΊΠ°, ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π½Π΅ΠΎΠ±ΡΡΠ½ΠΎΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ skimage ΠΈ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Matplotlib.
ΡΠ΅ΡΡΡΡΠΎΠ²
ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ NumPy.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Numpy Π΄Π»Ρ ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ:
import numpy as np
from skimage import data
import matplotlib.pyplot as plt
% matplotlib Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ
image = data.camera ()
ΡΠΈΠΏ (ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅)
numpy.ndarray #Image - ΡΡΠΎ ΠΌΠ°ΡΡΠΈΠ² NumPy:mask = image <87
image [mask] = 255
plt.imshow (image, cmap = 'gray')
3. SciPy
SciPy — ΡΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π½Π°ΡΡΠ½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Python (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, NumPy), ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π·Π°Π΄Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡΠ»Ρ scipy.ndimage (Π² SciPy v1.1.0) ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Ρ n-ΠΌΠ΅ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ NumPy. Π Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠ°ΠΊΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ ΠΈ Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ, Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΉ ΠΌΠΎΡΡΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΡΡΠΈΠΈ B-ΡΠΏΠ»Π°ΠΉΠ½ΠΎΠΌ ΠΈ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
ΡΠ΅ΡΡΡΡΠΎΠ²
ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ scipy.ndimage , ΡΠΌ. Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ SciPy Π΄Π»Ρ ΡΠ°Π·ΠΌΡΡΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΠ»ΡΡΡΠ° ΠΠ°ΡΡΡΠ°:
ΠΈΠ· scipy import misc, ndimage
face = misc.face ()
blurred_face = ndimage.gaussian_filter (face, sigma = 3)
very_blurred = ndimage.gaussian_filter (face, sigma = 5)
# Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ
plt.imshow (<ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ>)
4. PIL / ΠΏΠΎΠ΄ΡΡΠΊΠ°
PIL (Python Imaging Library) — ΡΡΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΎΡΠΌΠ°ΡΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ Π΅Π³ΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π·Π°ΡΡΠΎΠΏΠΎΡΠΈΠ»ΠΎΡΡ, ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π²ΡΠΏΡΡΠΊ Π±ΡΠ» Π²ΡΠΏΡΡΠ΅Π½ Π² 2009 Π³ΠΎΠ΄Ρ.Π ΡΡΠ°ΡΡΡΡ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Pillow , Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠ°Ρ Π²Π΅ΡΠ²Ρ PIL, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΎΡΠ΅ Π² ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π²ΠΎ Π²ΡΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Python 3. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠΎΡΠ΅ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π°Π±ΠΎΡΠ° Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΠ΄ΡΠ° ΡΠ²Π΅ΡΡΠΊΠΈ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ²Π΅ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°.
ΡΠ΅ΡΡΡΡΠΎΠ²
Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π΅ΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΎΡ Π²Π°ΡΡΠ²Π°ΡΡΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
Π£Π»ΡΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² Pillow Ρ ΠΏΠΎΠΌΠΎΡΡΡ ImageFilter:
ΠΈΠ· PIL import Image, ImageFilter
#Read image
im = Image.open ('image.jpg')
#Display image
im.show ()
ΠΈΠ· PIL import ImageEnhance
enh = ImageEnhance.Contrast (im)
enh.enhance (1.8) .show (Β«ΠΠ° 30% Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°ΡΡΠ°Β»)
5. OpenCV-Python
OpenCV (Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·ΡΠ΅Π½ΠΈΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ) — ΠΎΠ΄Π½Π° ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·ΡΠ΅Π½ΠΈΡ. OpenCV-Python — ΡΡΠΎ Python API Π΄Π»Ρ OpenCV. OpenCV-Python Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π±ΡΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΠ½ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΊΠΎΠ΄Π°, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π½Π° C / C ++, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π΅Π³ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°ΡΡ (Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ΅ Python Π½Π° ΠΏΠ΅ΡΠ΅Π΄Π½Π΅ΠΌ ΠΏΠ»Π°Π½Π΅).ΠΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ΅ΠΌΠΊΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·ΡΠ΅Π½ΠΈΡ.
ΡΠ΅ΡΡΡΡΠΎΠ²
OpenCV2-Python-Guide ΡΠΏΡΠΎΡΠ°Π΅Ρ Π½Π°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ OpenCV-Python.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄ Π² OpenCV-Python Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Β«OrappleΒ»:
6. SimpleCV
SimpleCV — Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΡΡΠ΅Π΄Π° Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·ΡΠ΅Π½ΠΈΡ. ΠΠ½ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΌΠΎΡΠ½ΡΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·ΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ OpenCV, Π½ΠΎ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π·Π½Π°ΡΡ ΠΎ Π±ΠΈΡΠΎΠ²ΠΎΠΉ Π³Π»ΡΠ±ΠΈΠ½Π΅, ΡΠΎΡΠΌΠ°ΡΠ°Ρ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ²Π΅ΡΠΎΠ²ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°Ρ ΠΈ Ρ. Π.ΠΠ³ΠΎ ΠΊΡΠΈΠ²Π°Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ Ρ OpenCV, ΠΈ (ΠΊΠ°ΠΊ Π³Π»Π°ΡΠΈΡ Π΅Π³ΠΎ ΡΠ»ΠΎΠ³Π°Π½) Β«ΡΡΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠ΅ Π·ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π»ΠΎ ΠΏΡΠΎΡΠ΅Β». ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π² ΠΏΠΎΠ»ΡΠ·Ρ SimpleCV:
- ΠΠ°ΠΆΠ΅ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΌΠΎΠ³ΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΡΡΡΠ΅ ΡΠ΅ΡΡΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ Π·ΡΠ΅Π½ΠΈΡ
- Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΠΊΠ°ΠΌΠ΅Ρ, Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ»ΠΎΠ², ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΏΠΎΡΠΎΠΊΠΎΠ²
Π Π΅ΡΡΡΡΡ
ΠΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠ° Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
7.ΠΠ°Ρ ΠΎΡΡ
Mahotas — Π΅ΡΠ΅ ΠΎΠ΄Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·ΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Python. ΠΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΠΈ ΠΌΠΎΡΡΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡΠ΅ΠΊ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ° ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Python, ΡΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π½ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π½Π° C ++ ΠΈ Π½Π°ΡΡΡΠΎΠ΅Π½Ρ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡ. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΠ°Ρ ΠΎΡΠ°ΡΠ° Π±ΡΡΡΡΠ°Ρ, Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡΠΈΡΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ Π΄Π°ΠΆΠ΅ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ.ΠΡΠΎΡΡΠΈΡΠ΅ Π΅Π³ΠΎ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅.
ΡΠ΅ΡΡΡΡΠΎΠ²
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅, ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ Π»Π΅Π³ΠΊΠΎ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Mahotas.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Mahotas Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΊΠΎΠ΄. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ½ Ρ ΠΎΡΠΎΡΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ Π·Π°Π΄Π°ΡΠ΅ΠΉ Finding Wally Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΊΠΎΠ΄Π°.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π ΠΏΠΎΠΈΡΠΊΠ°Ρ Π£ΠΎΠ»Π»ΠΈ:
8. SimpleITK
ITK (Insight Segmentation and Registration Toolkit) — ΡΡΠΎ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΎΠ±ΡΠΈΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. SimpleITK — ΡΡΠΎ ΡΠΏΡΠΎΡΠ΅Π½Π½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΏΠΎΠ²Π΅ΡΡ ITK, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½ΠΈΡ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Π±ΡΡΡΡΠΎΠΌ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΠΎΠ±ΡΡΠ΅Π½ΠΈΠΈ [ΠΈ] ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΡ ΡΠ·ΡΠΊΠ°Ρ Β». ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ ΠΎΠ±ΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ, ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ , ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ. SimpleITK Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C ++, Π½ΠΎ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠ°Ρ Python.
ΡΠ΅ΡΡΡΡΠΎΠ²
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Jupyter Notebooks, ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΡΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ SimpleITK Π² ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.ΠΠ»ΠΎΠΊΠ½ΠΎΡΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ SimpleITK Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python ΠΈ R.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΆΠ΅ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ CT / MR, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ SimpleITK ΠΈ Python:
9. pgmagick
pgmagick — ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° Python ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° Π΄Π»Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ GraphicsMagick. Π‘ΠΈΡΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ GraphicsMagick ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·ΡΠ²Π°ΡΡ Π¨Π²Π΅ΠΉΡΠ°ΡΡΠΊΠΈΠΌ Π°ΡΠΌΠ΅ΠΉΡΠΊΠΈΠΌ Π½ΠΎΠΆΠΎΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠ³ΠΎ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ΅Π½ΠΈΠ΅, Π·Π°ΠΏΠΈΡΡ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π² Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ 88 ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠΎΡΠΌΠ°ΡΠ°Ρ , Π²ΠΊΠ»ΡΡΠ°Ρ DPX, GIF, JPEG, JPEG-2000, PNG, PDF, PNM ΠΈ TIFF.
ΡΠ΅ΡΡΡΡΠΎΠ²
Π ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ GitHub
pgmagick Π΅ΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ. Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ°ΡΡΡΠ°Π± ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ:
ΠΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΡΠΎΠΌΠΎΠΊ:
10. ΠΠΈΠΊΠ°ΠΈΡ
Pycairo — ΡΡΠΎ Π½Π°Π±ΠΎΡ ΠΏΡΠΈΠ²ΡΠ·ΠΎΠΊ Python Π΄Π»Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Cairo. Cairo — ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° 2D-Π³ΡΠ°ΡΠΈΠΊΠΈ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π΅ΠΊΡΠΎΡΠ½ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊΠΈ. ΠΠ΅ΠΊΡΠΎΡΠ½Π°Ρ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π° ΡΠ΅ΠΌ, ΡΡΠΎ Π½Π΅ ΡΠ΅ΡΡΠ΅Ρ ΡΠ΅ΡΠΊΠΎΡΡΠΈ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈΠ»ΠΈ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΈ.Pycairo ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Cairo ΠΈΠ· Python.
ΡΠ΅ΡΡΡΡΠΎΠ²
Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Pycairo GitHub — Ρ ΠΎΡΠΎΡΠΈΠΉ ΡΠ΅ΡΡΡΡ Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Π½Π°ΡΠ°Π»Ρ ΡΠ°Π±ΠΎΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΅ΡΡΡ ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Pycairo.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΉ, ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠΎΡΠΌ ΠΈ ΡΠ°Π΄ΠΈΠ°Π»ΡΠ½ΡΡ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ Pycairo:
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² Python. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ Ρ ΠΎΡΠΎΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½Ρ, Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄Π»Ρ Π²Π°Ρ Π½ΠΎΠ²ΡΠΌΠΈ.ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΈΡ , ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ ΠΎ Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅!
.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Python
Π ΠΌΠΎΠ΅ΠΉ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ ΠΎ ΡΠΎΠ²Π΅ΡΠ°Ρ ΠΏΠΎ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π»Ρ ΠΏΠΈΡΠΎΠ½ΠΈΡΡΠΎΠ² Ρ ΡΠΏΠΎΠΌΠΈΠ½Π°Π», ΡΡΠΎ Python — ΡΡΠΎ ΡΠ·ΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠ²Ρ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
ΠΠ΄Π½Π° ΠΈΠ· ΠΏΡΠΈΡΠΈΠ½ ΡΡΠΎΠ³ΠΎ — ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΊΠΎΠ½ΠΎΠΌΡΡΠΈΡ Π²ΡΠ΅ΠΌΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°. Π₯ΠΎΡΠΎΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Python (PIL), ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈ ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π° Π΄Π°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ.
Π§ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ PIL
PIL — ΡΡΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² Π²Π°Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Python, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Ρ ΡΡΠ΄ ΡΠΎΡΠΌΠ°ΡΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ PPM, PNG, JPEG, GIF, TIFF ΠΈ BMP.
PIL ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ / ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
- ΠΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ
- ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΠΈ
- ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π·ΠΌΡΡΠΈΠ΅, ΠΊΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠ³Π»Π°ΠΆΠΈΠ²Π°Π½ΠΈΠ΅, ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΊΡΠ°Π΅Π²)
- ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π·ΠΊΠΎΡΡΠΈ, ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²ΠΊΠ° ΡΡΠΊΠΎΡΡΠΈ, ΠΊΠΎΠ½ΡΡΠ°ΡΡΠ½ΠΎΡΡΠΈ)
- Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅, ΡΠ²Π΅ΡΠ½ΡΠ΅ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ
- Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ
- Π²ΡΡΠ΅Π·ΠΊΠ°, Π²ΡΡΠ°Π²ΠΊΠ° ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
- ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΈΠ½ΠΈΠ°ΡΡΡ.
PIL ΠΈ ΠΏΠΎΠ΄ΡΡΠΊΠ°
ΠΠ΄Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ PIL Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΅Π³ΠΎ ΡΠ°ΠΌΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ, 1.1.7, Π±ΡΠ»Π° Π²ΡΠΏΡΡΠ΅Π½Π° Π² 2009 Π³ΠΎΠ΄Ρ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Python 1.5.2β2.7. Π₯ΠΎΡΡ ΡΠ°ΠΉΡ PIL ΠΎΠ±Π΅ΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ Π²Π΅ΡΡΠΈΡ Π΄Π»Ρ Python 3.X, Π΅Π³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π±ΡΠ»Π° Π² 2011 Π³ΠΎΠ΄Ρ, ΠΈ, ΠΏΠΎΡ ΠΎΠΆΠ΅, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π±ΡΠ»Π° ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π°.
Π ΡΡΠ°ΡΡΡΡ, Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Python 3.X Π½Π΅ Π²ΡΠ΅ ΠΏΠΎΡΠ΅ΡΡΠ½ΠΎ. ΠΡΠΎΠ΅ΠΊΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Pillow ΡΠ°Π·Π²Π΅ΡΠ²ΠΈΠ» ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ PIL ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Python 3.X. Π£ΡΠΈΡΡΠ²Π°Ρ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Python 3.X, Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΎΡΡΠ°Π½ΠΎΠ²Π»ΡΡΡ Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Pillow.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠΎΠ΄ΡΡΠΊΠΈ
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Pillow ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²Π΅ΡΡΠΈΠΈ Python Π΄ΠΎ Python 2.4, Ρ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Pillow, Π° Π½Π΅ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ PIL.
Python Π½Π° Mac
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Ρ ΠΏΠΈΡΡ ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π΄Π»Ρ Mac OS X Yosemite 10.10.5 ΠΈ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠΏΠΈΡΡ, ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Pillow Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Mac OS X. ΠΠΎ Π½Π΅ Π²ΠΎΠ»Π½ΡΠΉΡΠ΅ΡΡ, Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π° Ρ Π΄Π°ΠΌ ΡΡΡΠ»ΠΊΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ, ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Pillow Π² Π΄ΡΡΠ³ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ .
Π― ΠΏΡΠΎΡΡΠΎ Ρ ΠΎΡΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Mac OS X ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΠΏΡΠ΅Π΄ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌ Python. ΠΠ΄Π½Π°ΠΊΠΎ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ, ΡΠ΅ΠΌ 3.X.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΠΌΠΎΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, ΠΊΠΎΠ³Π΄Π° Ρ Π·Π°ΠΏΡΡΠΊΠ°Ρ $ python --version
Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅, Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ Python 2.7.10
.
Python ΠΈ pip
ΠΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΠ΄ΡΡΠΊΡ — ΡΠ΅ΡΠ΅Π· ΠΏΠΈΠΏ.
ΠΡΠ»ΠΈ Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ pip, ΠΏΡΠΎΡΡΠΎ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅, ΠΈ Π²ΡΠ΅ Π³ΠΎΡΠΎΠ²ΠΎ:
$ sudo easy_install pip
Π’Π΅ΠΏΠ΅ΡΡ, ΡΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Pillow, ΠΏΡΠΎΡΡΠΎ Π²Π²Π΅Π΄ΠΈΡΠ΅ Π² ΡΠ²ΠΎΠΉ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
$ sudo pip install ΠΏΠΎΠ΄ΡΡΠΊΠ°
ΠΡΠΎ Π±ΡΠ»ΠΎ Π»Π΅Π³ΠΊΠΎ, Π½Π΅ ΡΠ°ΠΊ Π»ΠΈ?
ΠΠ°ΠΊ Ρ ΠΈ ΠΎΠ±Π΅ΡΠ°Π», ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Pillow Π² Π΄ΡΡΠ³ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π·Π΄Π΅ΡΡ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ
Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Ρ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΡΡ Π²Π΅ΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ PIL.
Π― ΠΏΡΠΎΠ²Π΅Π΄Ρ ΡΡΠΈ ΡΠ΅ΡΡΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ:
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌ, Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
ΠΡΠΎΡΠΈΡΠ°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
ΠΡΠΎ ΡΠ°ΠΌΠ°Ρ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π² Π·Π°Π΄Π°ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π΅Π³ΠΎ. Π‘ PIL ΡΡΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΈΠ· PIL import Image
img = ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.ΠΎΡΠΊΡΡΡΡΠΉ ('brick-house.png')
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ img
— ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ PIL, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ open ()
, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ PIL Image
.
Π’Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΡΠ°ΡΡ ΡΠΆΠ΅ ΠΎΡΠΊΡΡΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΈΠ»ΠΈ ΠΈΠ· ΡΡΡΠΎΠΊΠΈ, ΠΈΠ»ΠΈ ΠΈΠ· tar-Π°ΡΡ ΠΈΠ²Π°.
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΠΎΡΡΠ΅Π½ΠΊΠΈ ΡΠ΅ΡΠΎΠ³ΠΎ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅
Π€Π°ΠΉΠ» brick-house.png
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ²Π΅ΡΠ½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. Π§ΡΠΎΠ±Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΠΎΡΡΠ΅Π½ΠΊΠΈ ΡΠ΅ΡΠΎΠ³ΠΎ, ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π΅Π³ΠΎ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΎΡΡΠ΅Π½ΠΊΠ°Ρ
ΡΠ΅ΡΠΎΠ³ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΈΠ· PIL import Image
img = ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.open ('ΠΊΠΈΡΠΏΠΈΡ-Π΄ΠΎΠΌ.png'). convert ('L')
img.show ()
img.save ('ΠΊΠΈΡΠΏΠΈΡ-Π΄ΠΎΠΌ-gs', 'png')
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ: convert ()
, show ()
ΠΈ save ()
. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΎΡΡΠ΅Π½ΠΊΠ°Ρ
ΡΠ΅ΡΠΎΠ³ΠΎ, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ L
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Ρ convert ()
.
ΠΠΎΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅:
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π² Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠΏ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ, ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ png
.Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ jpg
. ΠΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ save ()
, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π΄Π»Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° (Π·Π°ΠΏΠΈΡΠΈ Π²ΡΠ²ΠΎΠ΄Π° Π½Π° Π΄ΠΈΡΠΊ) Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅:
ΠΈΠ· PIL import Image
img = Image.open ('brick-house.png')
img.save ('ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅-ΠΊΠΈΡΠΏΠΈΡ', 'jpeg')
ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
Π Π°Π·ΠΌΠ΅Ρ (ΡΠ°Π·ΠΌΠ΅ΡΡ) Π½Π°ΡΠ΅Π³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ — 440 x 600 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ. ΠΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 256 x 256 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΈΠ· PIL import Image
img = ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.ΠΎΡΠΊΡΡΡΡΠΉ ('brick-house.png')
new_img = img.resize ((256,256))
new_img.save ('ΠΊΠΈΡΠΏΠΈΡΠ½ΡΠΉ-Π΄ΠΎΠΌ-256x256', 'png')
ΠΠΎΠ»ΡΡΠΈΡΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅:
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΡΠΆΠΈΠΌΠ°Π΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎ ΠΆΠ΅Π»Π°Π΅ΠΌΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ², Π° Π½Π΅ ΠΎΠ±ΡΠ΅Π·Π°Π΅Ρ Π΅Π³ΠΎ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ ΡΠ΅ΠΌ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΠ°Π΄ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎΡ ΡΠ°Π½ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½.
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΠΎ ΠΊΡΠ°ΡΠΊΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΊΠΎΡΠ½ΡΡΡΡΡ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠΈ PIL ΠΈ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Π³ΠΊΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ Π² Python Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ PIL.
ΠΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΎΠΏΠΈΡΠ°Π½Ρ Π² ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠ΅ΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Pillow, Π³Π΄Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ , ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π²ΡΡΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°.
Π― Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²Π΄ΠΎΡ Π½ΠΎΠ²ΠΈΠ»ΠΎ Π²Π°Ρ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python. Π Π°Π΄ΠΎΠ²Π°ΡΡΡΡ, Π²Π΅ΡΠ΅Π»ΠΈΡΡΡΡ!
.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π² Python ΠΈ OpenCV: ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° (ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅), ΠΏΠΎΠ²ΠΎΡΠΎΡ ΠΈ ΠΎΠ±ΡΠ΅Π·ΠΊΠ°
ΠΠΎΠ»ΡΡΠΈΡΠ΅ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠΎΠ΄Ρ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΈ Π²ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΡ 400+ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² ΠΏΠΎ PyImageSearch.
ΠΠ½ΡΡΡΠΈ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ …
- ΠΠΎΡΡΡΠΏ ΠΊ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π²ΡΠ΅ 400 ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² Π² Π±Π»ΠΎΠ³Π΅ PyImageSearch
- ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π±Π»ΠΎΠΊΠ½ΠΎΡΡ Jupyter Π² Google Colab Π΄Π»Ρ Π²ΡΠ΅Ρ Π½ΠΎΠ²ΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²
- Π£Π³Π»ΡΠ±Π»Π΅Π½Π½ΡΠ΅ Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ Π½ΠΎΠ²ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² Π±Π»ΠΎΠ³Π°Ρ — ΡΡΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΡΠΎΠ²Π΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π½Π΅ Π²ΠΊΠ»ΡΡΠ°Ρ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΌΠΎΠΈΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²
ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ Π½ΠΈΠΆΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ:
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΡΠ°ΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π²Π°ΡΠΈΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·Π½ΠΈΠΊΡΠ΅ΠΉ Ρ ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Python ΠΈ OpenCV.ΠΠΎΡΠΎΠ»ΡΡ Ρ ΡΡΠΈΠΌ Π΄Π²Π΅ Π½Π΅Π΄Π΅Π»ΠΈ, Π½ΠΎ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ² Π½Π΅ ΠΎΡΠ²Π΅ΡΠΈΠ»ΠΈ. ΠΡΠΎΡΡΠΈΡΠ΅ Π²Π°ΡΡ ΡΡΠ°ΡΡΡ Ρ Π½Π°ΡΠ΅Π» …. ΠΡΠΏΡΠ°Π²ΠΈΠ» Π·Π° Π΄Π²Π° ΡΠ°ΡΠ°. Π ΡΡΠΎ ΡΠΎΠΆΠ΅ Π±ΡΠ»ΠΎ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΠΎ. ΠΠ°ΡΠΈ Π²Π΅ΡΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅!
ΠΡΠΌΠ°ΠΈΠ» Π’ΠΎΠΌΠ°Ρ-ΠΠ΅Π½Π³Π΅ Π‘ΡΠ°ΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΡΠ»ΡΡΠ°Π½Ρ ΠΏΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΠΎΡ
PyImageSearch Plus — ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠΎΠ΄Ρ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΈ Π²ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΡ 400 ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² ΠΏΠΎ PyImageSearch!
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ²ΠΎΠΉ ΡΠ°ΡΠΈΡΠ½ΡΠΉ ΠΏΠ»Π°Π½ Π½ΠΈΠΆΠ΅ …
$ 4.95 / ΠΌΠ΅Ρ
49,50 $ / Π³ΠΎΠ΄ (ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ 15%)
- ΠΠΎΡΡΡΠΏ ΠΊ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π²ΡΠ΅ 400 ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² Π½Π° PyImageSearch
- ΠΡΠΎΡΡΠΎΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΡΡΡΠΏΠ° Π΄Π»Ρ ΠΡΠ΅ Π½ΠΎΠ²ΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΠ½Π΅Π΄Π΅Π»ΡΠ½ΠΈΠΊ
- ΠΡΠΎΡΡΠ°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΠΈΠΊ Π΄Π»Ρ ΠΊΠΎΠ΄Π°, ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Π½Π°Π±ΠΎΡΠΎΠ² Π΄Π°Π½Π½ΡΡ ΠΈ Ρ. Π.
$ 14.95 / ΠΌΠ΅Ρ
149,50 $ / Π³ΠΎΠ΄ (ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ 15%)
- ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π±Π»ΠΎΠΊΠ½ΠΎΡΡ Jupyter Π² Google Colab Π΄Π»Ρ Π²ΡΠ΅Ρ Π½ΠΎΠ²ΡΡ ΡΡΠ΅Π±Π½ΠΈΠΊΠΎΠ²
- ΠΠ°ΠΏΡΡΠΊΠ°ΠΉΡΠ΅ Π²ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π° Π² ΡΠ²ΠΎΠ΅ΠΌ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ΅. — ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Windows, macOS ΠΈ Linux.
- ΠΠΎΡΡΡΠΏ ΠΊ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π²ΡΠ΅ 400 ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² Π½Π° PyImageSearch
- ΠΡΠΎΡΡΠΎΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΡΡΡΠΏΠ° Π΄Π»Ρ ΠΡΠ΅ Π½ΠΎΠ²ΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΠ½Π΅Π΄Π΅Π»ΡΠ½ΠΈΠΊ
- ΠΡΠΎΡΡΠ°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΠΈΠΊ Π΄Π»Ρ ΠΊΠΎΠ΄Π°, ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Π½Π°Π±ΠΎΡΠΎΠ² Π΄Π°Π½Π½ΡΡ ΠΈ Ρ. Π.
$ 74.95 / ΠΌΠ΅Ρ
749,50 $ / Π³ΠΎΠ΄ (ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ 15%)
- ΠΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ Π½ΠΎΠ²ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² Π±Π»ΠΎΠ³Π΅
- ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π±Π»ΠΎΠΊΠ½ΠΎΡΡ Jupyter Π² Google Colab Π΄Π»Ρ Π²ΡΠ΅Ρ Π½ΠΎΠ²ΡΡ ΡΡΠ΅Π±Π½ΠΈΠΊΠΎΠ²
- ΠΠ°ΠΏΡΡΠΊΠ°ΠΉΡΠ΅ Π²ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π° Π² ΡΠ²ΠΎΠ΅ΠΌ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ΅. — ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Windows, macOS ΠΈ Linux.
- ΠΠΎΡΡΡΠΏ ΠΊ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π²ΡΠ΅ 400 ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² Π½Π° PyImageSearch
- ΠΡΠΎΡΡΠΎΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΡΡΡΠΏΠ° Π΄Π»Ρ ΠΡΠ΅ Π½ΠΎΠ²ΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΠ½Π΅Π΄Π΅Π»ΡΠ½ΠΈΠΊ
- ΠΡΠΎΡΡΠ°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΠΈΠΊ Π΄Π»Ρ ΠΊΠΎΠ΄Π°, ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Π½Π°Π±ΠΎΡΠΎΠ² Π΄Π°Π½Π½ΡΡ ΠΈ Ρ. Π.
- ΠΠΎΡΡΡΠΏ ΠΊ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π²ΡΠ΅ 400+ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² Π² Π±Π»ΠΎΠ³Π΅ PyImageSearch
- ΠΡΠΎΡΡΠΎΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΡΡΡΠΏΠ° Π΄Π»Ρ ΠΡΠ΅ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ΅Π±Π½ΡΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΠ½Π΅Π΄Π΅Π»ΡΠ½ΠΈΠΊ Π² 10:00 EST
- ΠΡΠΎΡΡΠ°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΠΈΠΊ Π΄Π»Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π½Π°Π±ΠΎΡΠΎΠ² Π΄Π°Π½Π½ΡΡ , ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±ΡΡΠ΅Π½Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈ Ρ. Π.
- ΠΡΠΌΠ΅Π½ΠΈΡΡ Π² Π»ΡΠ±ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ
- ΠΠ΅Π³ΠΊΠΈΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠΎΠ΄Ρ, Π½Π°Π±ΠΎΡΠ°ΠΌ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±ΡΡΠ΅Π½Π½ΡΠΌ ΠΌΠΎΠ΄Π΅Π»ΡΠΌ Π΄Π»Ρ Π²ΡΠ΅Ρ 400+ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² Π² Π±Π»ΠΎΠ³Π΅ PyImageSearch
- ΠΠ·ΡΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Jupyter Notebooks Π² Google Colab Π΄Π»Ρ Π²ΡΠ΅Ρ Π½ΠΎΠ²ΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² , ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΡ Π½Π° PyImageSearch
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π² Google Colab — Π±ΠΎΠ»ΡΡΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π³ΠΎΠ»ΠΎΠ²Π½ΡΡ Π±ΠΎΠ»Π΅ΠΉ ΠΈ ΡΡΠ°ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
- ΠΠΎΠ΄ΡΠΎΠ±Π½ΡΠ΅ Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊΠΈ ΠΈ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ Π½ΠΎΠ²ΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² ΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²
- ΠΠΎΡΡΡΠΏ ΠΊ ΡΠΊΡΠΊΠ»ΡΠ·ΠΈΠ²Π½ΡΡ ΡΠ΄Π΅Π»ΠΎΠΊ ΠΏΠΎ ΠΌΠΎΠΈΠΌ ΠΊΠ½ΠΈΠ³Π°ΠΌ ΠΈ ΠΊΡΡΡΠ°ΠΌ
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΡΠ°ΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π²Π°ΡΠΈΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·Π½ΠΈΠΊΡΠ΅ΠΉ Ρ ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Python ΠΈ OpenCV.ΠΠΎΡΠΎΠ»ΡΡ Ρ ΡΡΠΈΠΌ Π΄Π²Π΅ Π½Π΅Π΄Π΅Π»ΠΈ, Π½ΠΎ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ² Π½Π΅ ΠΎΡΠ²Π΅ΡΠΈΠ»ΠΈ. ΠΡΠΎΡΡΠΈΡΠ΅ Π²Π°ΡΡ ΡΡΠ°ΡΡΡ Ρ Π½Π°ΡΠ΅Π» …. ΠΡΠΏΡΠ°Π²ΠΈΠ» Π·Π° Π΄Π²Π° ΡΠ°ΡΠ°. Π ΡΡΠΎ ΡΠΎΠΆΠ΅ Π±ΡΠ»ΠΎ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΠΎ. ΠΠ°ΡΠΈ Π²Π΅ΡΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅!
ΠΡΠΌΠ°ΠΈΠ» Π’ΠΎΠΌΠ°Ρ-ΠΠ΅Π½Π³Π΅ Π‘ΡΠ°ΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΡΠ»ΡΡΠ°Π½Ρ ΠΏΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΠΎΡ
.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Python
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΡ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡ Ρ ΡΠΈΡΡΠ°ΡΠΈΠ΅ΠΉ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ?
ΠΡΠ΅Π½Ρ ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ, ΡΡΠΎ Π·Π°ΠΉΠΌΠ΅Ρ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΠΎ. ΠΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Python, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±ΡΡΡΡΠΎ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΈΠ³ΡΠ°Π΅ΠΌ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ.
Π§ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π΅ΡΠ°Π»Π΅ΠΉ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΡΡΡΠΊΡΡΡΠ° ΠΌΠΎΠ΅Π³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ.
Π ΠΌΠΎΠ΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Π΅ΡΡΡ ΡΠ°ΠΉΠ» Python Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ImageManipulation.py ΠΈ ΡΠ°ΠΉΠ» ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ PythonImageFromGoogle.PNG.
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π½Π°Ρ ΠΎΠ΄ΡΡΠ΅Π΅ΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄.
- pythinImg = Image.open (‘PythonImageFromGoogle.PNG’)
- print (pythinImg.size)
- print (pythinImg.format)
ΠΠ΄Π΅ΡΡ Ρ ΠΏΡΡΠ°ΡΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· PIL.Π― Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠ»ΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π» Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π½ΠΈΠΌ.
Π Π°Π·ΠΌΠ΅Ρ ΠΈ ΡΠΎΡΠΌΠ°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ Π²Π°ΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈ ΡΠΈΠΏ ΡΠΎΡΠΌΠ°ΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
ΠΡΠ²ΠΎΠ΄
ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π·?
Π‘ΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π· Π½Π° Python ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ.
- newImage = Image.new (‘RGBA’, (200,150), ‘blue’)
- newImage.save (‘newImage.png’)
Β«Image.newΒ» ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠΈΠ½ΠΎΠΉ 200 ΠΈ Π²ΡΡΠΎΡΠΎΠΉ 150. Π¦Π²Π΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΈΠ½ΠΈΠΉ.
Β«Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡΒ» ΡΠΎΡ ΡΠ°Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠΎΠΉ ΠΆΠ΅ ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ Π·Π΄Π΅ΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ.
ΠΡΠ²ΠΎΠ΄
ΠΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° ββΡΡΡΡΠΊΡΡΡΠ° ΠΏΠ°ΠΏΠΎΠΊ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π² ΠΏΠ°ΠΏΠΊΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ newImage.png.
ΠΠΎΠ²Π΅ΡΠ½ΠΈΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π΅Π³ΠΎ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ½ΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π»ΡΠ±ΠΎΠΉ ΡΠ³ΠΎΠ», Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ½ΡΡΡ, ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
- pythinImg.rotate (180) .save (‘PythonImageFromGoogle180.PNG’)
- pythinImg_180 = Image.open (‘PythonImageFromGoogle180.PNG’)
- pythinImg_180.show ()
9000 ΠΠ΄Π΅ΡΡ Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ°. ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° 180 Π³ΡΠ°Π΄ΡΡΠΎΠ² ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΡΠ°ΠΉΠ». Π Π² ΡΡΠ΅ΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΎΡΠΊΡΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ²Π΅ΡΠ½ΡΡΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΡΠ²ΠΎΠ΄
ΠΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° ββΡΡΡΡΠΊΡΡΡΠ° ΠΏΠ°ΠΏΠΎΠΊ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΌΠ΅ΡΠΈΡΡ ΡΠ°ΠΉΠ» PythonImageFromGoogle180.PNG Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΠΏΠ°ΠΏΠΊΡ.
Π€ΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
Π€ΠΈΠ»ΡΡΡ Π»Π΅Π³ΠΊΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ Π»ΡΡΡΠ΅.
- image_sharp = pythinImg_180.filter (ImageFilter.SHARPEN)
- image_sharp.save (‘PythonImageFromGoogle180Sharpen.PNG’)
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅
Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΠ°ΠΏΠΊΠΈ
ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π² ΠΏΠ°ΠΏΠΊΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ PythonImageFromGoogle180Sharpen.PNG.
- ΠΈΠ· PIL import Image, ImageFilter
- pythinImg = Image.open (‘PythonImageFromGoogle.PNG’)
- print (pythinImg.size)
- print (pythinImg.format)
- print (pythinImg.format)
- newImage = Image.new (‘RGBA’, (200,150), ‘blue’)
- newImage.save (‘newImage.png’)
- pythinImg.rotate (180) .save (‘PythonImageFromGoogle180.PNG’)
- pythinImg_180 = Image.open (‘PythonImageFromGoogle180.PNG’)
- pythinImg_180.show ()
- image_sharp = pythinImg_1 (Image_sharp = pythinImg_1)
- image_sharp.save (‘PythonImageFromGoogle180Sharpen.PNG’)
ΠΡΠ²ΠΎΠ΄
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅, Π²Π°ΠΌ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΡΡΡ.Π£Π΄Π°ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ !!!
.