Pengantar pemrosesan gambar dengan Python dengan Pillow

Kebetulan Anda pergi ke kantor pos dan melihat koleksi artikel lain yang tidak pernah Anda baca, tetapi di sini bintang-bintang bertemu begitu banyak sehingga saya membuka artikel dan membacanya, dan menemukan di mana itu akan berguna dalam praktik. Dan sekarang saya ingin berbagi artikel dengan Habr, jadi jika seseorang membutuhkan panduan sederhana dan mudah dimengerti untuk bekerja dengan gambar dengan Python, silakan.







Pillow adalah pustaka pencitraan open source gratis ( selanjutnya disebut Imaging Library ) dengan Python yang menambahkan dukungan untuk membuka, memodifikasi, dan menyimpan gambar dalam berbagai ekstensi ke kode Anda.







Ayo mulai



Kelas paling penting dalam Imaging Library Python adalah kelas Image, yang didefinisikan dalam modul dengan nama yang sama. Kami menggunakan open () untuk membuka gambar di direktori lokal kami seperti yang ditunjukkan di bawah ini:







from PIL import Image
sample = Image.open('pena.jpg')
      
      





Itu mudah! Sekarang Anda dapat membaca gambar menggunakan Pillow , yang berarti Anda dapat mulai memproses gambar dengan itu. Anda juga dapat memeriksa jenis gambar yang baru saja kami unggah.







type(sample)
PIL.JpegImagePlugin.JpegImageFile
      
      





Anda dapat melihat properti gambar, misalnya:







  • format
  • ukuran
  • mode warna


sample.format
'JPEG'
sample.size
(640, 640)
sample.mode
'RGB'
      
      





, , show







sample.show() #   ,     PNG
      
      













Pillow  , , , jpg png .







, Python , jpg, png.







import os
import sys
from PIL import Image
jpg_images = [image for image in os.listdir() if image.endswith('.jpg')]
for jpg_image in jpg_images:
    try:
        new_name = jpg_image.split('.')[0] + '.png'
        Image.open(jpg_image).save(new_name)
    except IOError as error:
        print('Couldn\'t read {} '.format(jpg_image))
      
      











, , , jpg, .png, . .









Pillow , , , .







from PIL import Image
picture = Image.open('pena.png')
cord = (10, 10, 640, 340) # , , , 
new_picture = picture.crop(cord)
new_picture.show()
      
      











, . .







(x, y) , (x2, y2) .









Pillow , .







.









from PIL import Image
image = Image.open('pena.png')
resized_image = image.resize((320, 320))
resized_image.save('resized.png')
      
      





, 320 320.









from PIL import Image
image = Image.open('pena.png')
rotated_img = image.rotate(80)
rotated_img.save('./rotation/rotated_img.png')
      
      











360 — , .









from PIL import Image 
images = ['pena.jpg']
for img in images:
    try:
        org_img = Image.open(img)
        for angle in range(1, 361):
            image_name = str(angle)+'.jpg'
            new_img = org_img.rotate(angle)
            new_img.save('./rotation/'+image_name)
    except IOError:
        print('Couldn\'t read {}'.format(img))
      
      





, 360 , .















— . , , .







, , ,- , , .







Pillow , BLUR, BoxBlur, CONTOUR, FIND_EDGES, Filter, GaussianBlur, Kernel, MaxFilter, MedianFilter, SHARPEN, SMOOTH ..









, FIND_EDGES.







from PIL import Image
from PIL import Image, ImageFilter
image = Image.open('pena.jpg')
edges = image.filter(ImageFilter.FIND_EDGES)
edges.show()
      
      











Python Pillow , .









, Pillow Python,







from PIL import Image
image = Image.open(open('pena.jpg', 'rb'))
      
      





URL



Pillow . GET-request , , Pillow .







import requests
from PIL import Image
url = 'http://pena.marketing/images/Logo1.png'
raw = requests.get(url, stream=True).raw
Image.open(raw).show()
      
      













Pillow , . Image.new() .







:







new = Image.new(mode, shape, color)
      
      





:







from PIL import Image
new_img = Image.new('RGB', (500, 500), 'blue')
new_img.show()
      
      













Pillow . . , .









.







from PIL import Image, ImageDraw
new_img = Image.new('RGB', (400, 400), 'black')
pencil = ImageDraw.Draw(new_img)
pencil.rectangle((200, 50, 300, 300), fill ='green')
new_img.show()
      
      











(x, y) , (x2, y2) .









Pillow .







from PIL import Image , ImageDraw, ImageFont 
new_img = Image.new('RGB', (200, 200), 'black')
font = ImageFont.load_default()
pencil = ImageDraw.Draw(new_img)
pencil.text((100,100),'Hello World',  font=font, fill='blue', size = 36)
new_img.show()
      
      











:










All Articles