Kuvien käsittely Pythonissa

Kuvien käsittely Pythonissa

PIL on Python Imaging Library, joka tarjoaa python-tulkin kuvanmuokkausominaisuudet. Sen ovat kehittäneet Fredrik Lundh ja useat muut avustajat. Pillow on Alex Clarkin ja muiden avustajien kehittämä ystävällinen PIL-haarukka ja helppokäyttöinen kirjasto. Työskentelemme Pillowin kanssa.

Asennus:

  • Linux: Kirjoita linux-päätelaitteessa seuraava:
     pip install Pillow  Pipin asennus terminaalin kautta:  
     sudo apt-get update   
    sudo apt-get install python-pip
  • Windows: Lataa sopiva tyynypaketti python-versiosi mukaan. Varmista, että lataat python-versiosi mukaan.

Työskentelemme tässä Image Module -moduulin kanssa, joka tarjoaa samannimisen luokan ja tarjoaa paljon toimintoja kuviemme käsittelyyn. Kuvamoduulin tuomiseksi koodimme tulee alkaa seuraavalla rivillä:

  from PIL import Image  

Toiminnot kuvien kanssa:

  • Avaa tietty kuva polusta: Python
       #img = Image.open(path)    # On successful execution of this statement   # an object of Image type is returned and stored in img variable)   try  :   img   =   Image  .  open  (  path  )   except   IOError  :   pass   # Use the above statement within try block as it can    # raise an IOError if file cannot be found    # or image cannot be opened.   
  • Hae kuvan koko : Luoduilla Image-luokan esiintymillä on monia attribuutteja, yksi sen hyödyllisistä määritteistä on koko. Python
       from   PIL   import   Image   filename   =   'image.webp'   with   Image  .  open  (  filename  )   as   image  :   width     height   =   image  .  size   #Image.size gives a 2-tuple and the width height can be obtained   
    Joitakin muita määritteitä ovat: Image.width Image.height Image.format Image.info jne.
  • Tallenna muutokset kuvaan: Tallentaaksemme kaikki kuvatiedostoon tekemäsi muutokset meidän on annettava polku ja kuvamuoto. Python
       img  .  save  (  path     format  )   # format is optional if no format is specified    #it is determined from the filename extension   
  • Kuvan kääntäminen: Kuvan kierto vaatii kulman parametrina kuvan kääntämiseksi. Python
       from   PIL   import   Image   def   main  ():   try  :   #Relative Path   img   =   Image  .  open  (  'picture.webp'  )   #Angle given   img   =   img  .  rotate  (  180  )   #Saved in the same relative location   img  .  save  (  'rotated_picture.webp'  )   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   
    kuvan kääntäminen pythonissa Huomautus: Käytettävissä on valinnainen laajennuslippu, joka on yksi kiertomenetelmän argumenteista, joka, jos se on asetettu tosi, laajentaa tulosteen kuvan niin, että se pitää sisällään koko käännetyn kuvan. Kuten yllä olevasta koodinpätkästä näkyy, olen käyttänyt suhteellista polkua, jossa kuvani sijaitsee samassa hakemistossa python-kooditiedostoni kanssa, myös absoluuttista polkua voidaan käyttää.
  • Kuvan rajaaminen: Image.crop(box) ottaa 4-kertaisen (vasen ylempi oikea alempi) pikselikoordinaatin ja palauttaa käytetystä kuvasta suorakaiteen muotoisen alueen. Python
       from   PIL   import   Image   def   main  ():   try  :   #Relative Path   img   =   Image  .  open  (  'picture.webp'  )   width     height   =   img  .  size   area   =   (  0     0     width  /  2     height  /  2  )   img   =   img  .  crop  (  area  )   #Saved in the same relative location   img  .  save  (  'cropped_picture.webp'  )   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   
    kuvan rajaaminen pythonissa
  • Kuvan koon muuttaminen: Image.resize(size) - Tässä koko on 2-osan leveys ja korkeus. Python
       from   PIL   import   Image   def   main  ():   try  :   #Relative Path   img   =   Image  .  open  (  'picture.webp'  )   width     height   =   img  .  size   img   =   img  .  resize  ((  width  /  2     height  /  2  ))   #Saved in the same relative location   img  .  save  (  'resized_picture.webp'  )   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   
    kuvan koon muuttaminen pythonissa
  • Kuvan liittäminen toiseen kuvaan: Toinen argumentti voi olla 2-tuple (määrittää vasemman yläkulman) tai 4-tuple (vasen yläoikea alempi) - tässä tapauksessa liitetyn kuvan koon on vastattava tämän laatikkoalueen kokoa tai Ei mitään, mikä vastaa (0 0). Python
       from   PIL   import   Image   def   main  ():   try  :   #Relative Path   #Image on which we want to paste   img   =   Image  .  open  (  'picture.webp'  )   #Relative Path   #Image which we want to paste   img2   =   Image  .  open  (  'picture2.webp'  )   img  .  paste  (  img2     (  50     50  ))   #Saved in the same relative location   img  .  save  (  'pasted_picture.webp'  )   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   ##An additional argument for an optional image mask image is also available.   
    kuvan liittäminen toiseen Pythonissa
  • Kuvan histogrammin hankkiminen: Tämä palauttaa kuvan histogrammin, koska pikseliluettelo laskee yhden kutakin kuvan pikseliä kohden. (Kuvan histogrammi on graafinen esitys digitaalisen kuvan sävyjakaumasta. Se sisältää kaikki kuvan sisältämät kirkkausarvot. Se piirtää kunkin kirkkausarvon pikselien lukumäärän. Se auttaa valotusasetusten tekemisessä.) kohdasta PIL import Image Python
       def   main  ():   try  :   #Relative Path   img   =   Image  .  open  (  'picture.webp'  )   #Getting histogram of image   print   img  .  histogram  ()   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   
    kuvan-histogrammin saaminen python-kopiossa


  • Kuvan siirtäminen: Tämä ominaisuus antaa meille kuvan peilikuvan Python
        from   PIL   import   Image   def   main  ():   try  :   #Relative Path   img   =   Image  .  open  (  'picture.webp'  )   #transposing image    transposed_img   =   img  .  transpose  (  Image  .  FLIP_LEFT_RIGHT  )   #Save transposed image   transposed_img  .  save  (  'transposed.webp'  )   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   
    kuvan siirtäminen pythonissa
  • Jaa kuva yksittäisiin bändeihin: Kuvan jakaminen RGB-tilassa luo kolme uutta kuvaa, joista jokainen sisältää kopion alkuperäisistä yksittäisistä kaistaista. Python
       from   PIL   import   Image   def   main  ():   try  :   #Relative Path   img   =   Image  .  open  (  'picture.webp'  )   #splitting the image   print   img  .  split  ()   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   
    jakaa kuva pythonissa
  • bittikartta: Kuvan muuntaminen X11-bittikartaksi (plain text binary image format). Se palauttaa merkkijonon, joka sisältää X11-bittikartan, ja sitä voidaan käyttää vain tilan 1 kuville eli 1 bitin pikselin mustavalkoisille kuville. PIL-tuontikuvasta Python
       def   main  ():   try  :   #Relative Path   img   =   Image  .  open  (  'picture.webp'  )   print   img  .  mode   #converting image to bitmap   print   img  .  tobitmap  ()   print   type  (  img  .  tobitmap  ())   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   
    kuvan muuntaminen bittikartaksi pythonissa kuvan muuntaminen bitmaoksi pythonissa
  • Pikkukuvan luominen: Tämä menetelmä luo pikkukuvan avattavasta kuvasta. Se ei palauta uutta kuvaobjektia, vaan tekee paikan päällä olevan muokkauksen itse avautuvaan kuvaobjektiin. Jos et halua muuttaa alkuperäistä kuvaobjektia, luo kopio ja käytä sitten tätä menetelmää. Tämä menetelmä arvioi myös sopivan säilyttää kuvan kuvasuhteen siirretyn koon mukaan. PIL-tuontikuvasta Python
       def   main  ():   try  :   #Relative Path   img   =   Image  .  open  (  'picture.webp'  )   #In-place modification   img  .  thumbnail  ((  200     200  ))   img  .  save  (  'thumb.webp'  )   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   
    kuvan pikkukuvan luominen pythonissa
Luo tietokilpailu