ebook img

Image Processing in Python PDF

154 Pages·2021·5.032 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Image Processing in Python

Image Processing in Python Processing raster images with the Pillow library Martin McBride Thisbookisforsaleathttp://leanpub.com/imageprocessinginpython Thisversionwaspublishedon2021-08-22 ThisisaLeanpubbook.LeanpubempowersauthorsandpublisherswiththeLeanPublishing process.LeanPublishingistheactofpublishinganin-progressebookusinglightweighttoolsand manyiterationstogetreaderfeedback,pivotuntilyouhavetherightbookandbuildtractiononce youdo. ©2021MartinMcBride Contents Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i Whoisthisbookfor? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i Abouttheauthor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i Keepintouch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii Versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii Examplesourcesongithub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii I Bitmap images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1. Introductiontobitmapimaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1 Whatisabitmapimage? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Spatialsampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Colourrepresentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4 Fileformats. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.5 Vectorimages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. Computercolour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1 Visiblelight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.1 Frequencyandwavelength. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Whatiscolour? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.1 Non-spectralcolours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3 Howweseecolour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.4 TheRGBcolourmodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.4.1 Displayingcolour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.4.2 RepresentingRGBcoloursasapercentage . . . . . . . . . . . . . . . . . . 10 2.4.3 Floatingpointrepresentation . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4.4 Bytevaluerepresentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.5 Colourresolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.6 Greyscalecolourmodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.7 TheCMYKcolourmodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.7.1 TheKcomponent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.8 HSL/HSBcolourmodels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 CONTENTS 2.9 HSLvariants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.10 Perceptualcolourmodels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.10.1 CIEspaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.11 Colourmanagement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.11.1 Gamuts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3. Bitmapimagedata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.1 Datalayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.2 8-bitperchannelimages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.2.1 24-bitRGB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.2.2 32-bitCMYK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.2.3 8-bitgreyscale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.2.4 32-bitRGBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.3 Bitmapdatawithfewerlevels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.3.1 8-bitRGB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.3.2 16-bitRGB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.3.3 Dithering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.4 Bilevelimages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.5 Bitmapdatawithmorelevels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.6 Palettebasedimages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.6.1 Imageswithmorethan256colours. . . . . . . . . . . . . . . . . . . . . . . 28 3.7 Handlingtransparency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.7.1 Alphachannel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.7.2 Transparentpaletteentry. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.7.3 Transparentcolour. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.8 Interlacingandalternatepixelordering . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4. Imagefileformats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.1 Whyaretheresomanyformats?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.2 Imagedataandmetadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.3 Imagecompression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.3.1 Losslesscompression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.3.2 Lossycompression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.4 Somecommonfileformats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.4.1 PNGformat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.4.2 JPEGformat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.4.3 GIFformat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.4.4 BMPformat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.5 Animation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 II Pillow library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 5. IntroductiontoPillow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 CONTENTS 5.1 PillowandPIL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.2 InstallingPillow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.3 MainfeaturesofPillow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 6. Basicimaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 6.1 TheImageclass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 6.2 Creatinganddisplayinganimage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 6.3 Savinganimage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 6.4 Handlingcolours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 6.4.1 Convertingstringstocolours . . . . . . . . . . . . . . . . . . . . . . . . . . 45 6.5 Creatingimages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 6.6 Openinganimage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 6.7 Imageprocessing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 6.8 Rotatinganimage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 6.9 Creatingathumbnail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 6.10 Imagemodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 7. Imageclass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 7.1 Examplecode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 7.2 Creatingimages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 7.2.1 Image.new . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 7.2.2 Image.open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 7.2.3 copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 7.2.4 Othermethods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 7.3 Savingimages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 7.4 Imagegenerators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 7.5 Workingwithimagebands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 7.5.1 getbands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 7.5.2 split . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 7.5.3 merge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 7.5.4 getchannel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 7.5.5 putalpha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 8. ImageOpsmodule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 8.1 Imageresizingfunctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 8.1.1 expand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 8.1.2 crop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 8.1.3 scale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 8.1.4 pad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 8.1.5 fit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 8.2 Imagetransformationfunctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 8.2.1 flip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 8.2.2 mirror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 8.2.3 exif-transpose. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 CONTENTS 8.3 Coloureffects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 8.3.1 grayscale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 8.3.2 colorize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 8.3.3 invert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 8.3.4 posterize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 8.3.5 solarize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 8.4 Imageadjustment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 8.4.1 autocontrast. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 8.4.2 equalize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 8.5 Deformingimages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 8.5.1 Howdeformworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 8.5.2 getmesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 8.5.3 Awavetransform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 8.5.4 Otherdeformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 9. Imageattributesandstatistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 9.1 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 9.1.1 Filesize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 9.1.2 Filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 9.1.3 Fileformat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 9.1.4 Modeandbands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 9.1.5 Palette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 9.1.6 Info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 9.1.7 Animation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 9.1.8 EXIFtags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 9.2 Imagestatistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 9.2.1 Imagehistogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 9.2.2 Masking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 9.2.3 OtherImagestatistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 9.2.4 ImageStatmodule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 10. Enhancingandfilteringimages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 10.1 ImageEnhance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 10.1.1 Brightness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 10.1.2 Contrast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 10.1.3 Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 10.1.4 Sharpness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 10.2 ImageFilter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 10.3 Predefinedfilters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 10.4 Parameterisedfilters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 10.4.1 Blurringfunctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 10.4.2 Unsharpmasking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 10.4.3 Rankingandaveragingfilters . . . . . . . . . . . . . . . . . . . . . . . . . . 97 CONTENTS 10.5 Definingyourownfilters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 11. Imagecompositing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 11.1 Simpleblending . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 11.1.1 Imagetransparency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 11.1.2 ImageChopsblendfunction . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 11.1.3 ImageChopscompositefunction . . . . . . . . . . . . . . . . . . . . . . . . 102 11.2 Blendmodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 11.2.1 Addition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 11.2.2 Subtraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 11.2.3 Lighteranddarker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 11.2.4 Multiplyandscreen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 11.2.5 Otherblendmodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 11.3 Logicalcombinations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 12. Drawingonimages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 12.1 Coordinatesystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 12.2 Drawingshapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 12.2.1 Drawingrectangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 12.2.2 Drawingothershapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 12.2.3 Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 12.3 Handlingtext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 12.3.1 Drawingsimpletext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 12.3.2 Fontandtextmetrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 12.3.3 Anchoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 12.3.4 Drawingmultilinetext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 12.4 Paths. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 12.4.1 Drawingapath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 12.4.2 Transformingpaths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 12.4.3 Mappingpoints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 13. Accessingpixeldata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 13.1 Processinganimage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 13.2 Creatinganimage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 13.3 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 14. IntegratingPillowwithotherlibraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 14.1 NumPyintegration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 14.1.1 ConvertingaPillowimagetoNumpy . . . . . . . . . . . . . . . . . . . . . 133 14.1.2 ImagedatainaNumPyarray . . . . . . . . . . . . . . . . . . . . . . . . . . 134 14.1.3 ModifyingtheNumPyimage . . . . . . . . . . . . . . . . . . . . . . . . . . 134 14.1.4 ConvertingaNumPyarraytoaPillowimage . . . . . . . . . . . . . . . . 135 CONTENTS III Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136 15. Pillowcolourrepresentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 15.1 Hexadecimalcolourspecifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 15.2 RGBfunctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 15.3 HSLfunctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 15.4 HSVfunctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 15.5 Namedcolours. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 15.6 Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 15.7 Imagemodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Morebooksfromthisauthor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 NumpyRecipes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 ComputerGraphicsinPythonwithPycairo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 FunctionalProgramminginPython. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 Preface This book provides an introduction to the basics of image processing in Python, using the Pillow imaging library. After reading this book you should be able to create Python programs to read, writeandmanipulateimages. Who is this book for? ThisbookisaimedatanyonewishingtolearnaboutimageprocessinginPython.Itdoesn’trequire any prior knowledge of image processing, but it will also be useful if you already have experience workingwithimagedataandwouldliketolearnthespecificsofthePillowlibrary. It will be assumed that you have a basic working knowledge of Python, but all examples are fully explainedanddon’tuseanyadvancedlanguagefeatures. About the author MartinMcBrideisasoftwaredeveloper,specialisingincomputergraphics,sound,andmathematical programming. He has been writing code since the 1980s in a wide variety of languages from assembler through to C++, Java and Python. He writes for PythonInformer.com and is the author of several books on Python. He is interested in generative art and works on the generativepy open sourceproject. Keep in touch Ifyouhaveanycommentsorquestionsyoucangetintouchbyanyofthefollowingmethods: • JoiningthePythonInformerforumathttp://pythoninformer.boards.net/¹. • SigningupforthePythonInformernewsletteratpythoninformer.com • Following@pythoninformeronTwitter. • Contactingmedirectlybyemail([email protected]). ¹http://pythoninformer.boards.net/ Introduction ThisbookisaboutbitmapimaginginPython.Itisdividedintotwosections: • Bitmap images - introduces some important concepts of bitmap imaging, including colour representation,pixeldatamodels,imagecompression,fileformatsandmetadata. • Pillowlibrary-adetailedtutorialonthePythonPillowimaginglibrary,oneofthemostpopular Pythonimaginglibraries. There is also a Reference section, containing some useful information that you will probably need torefertoo,allgatheredinoneplace. Versions ThisbookusesPillowversion8.2.0and Pythonversion3.9. Theexampleswillworkwitholderversions(Pillowversion5orlater,Pythonversion3.6orlater). Thereisagoodchancetheexampleswillalsoworkwithnewerversions. Example sources on github Youcanfindexampleimagesandsourcefilesongithub,athttps://github.com/martinmcbride/python- imaging-book-examples

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.