Jadual Kandungan
Penggunaan perpustakaan PIL
1. Gambaran keseluruhan perpustakaan PIL
2. Perpustakaan PIL Analisis kelas imej
3.图像的过滤和增强
Rumah pembangunan bahagian belakang Tutorial Python Pustaka PIL pemprosesan imej Python

Pustaka PIL pemprosesan imej Python

Jun 23, 2022 pm 12:22 PM
python

Artikel ini membawakan anda pengetahuan yang berkaitan tentang python, yang terutamanya mengatur isu yang berkaitan dengan perpustakaan PIL Pustaka PIL ialah pustaka pihak ketiga dengan keupayaan pemprosesan imej yang berkuasa Ia bukan sahaja termasuk piksel Kaya fungsi operasi warna juga boleh digunakan untuk mengarkibkan imej dan pemprosesan kelompok Mari kita lihat ia akan membantu semua orang.

Pustaka PIL pemprosesan imej Python

Pembelajaran yang disyorkan: python

Penggunaan perpustakaan PIL

Isi penting: PIL Perpustakaan ialah perpustakaan pihak ketiga dengan keupayaan pemprosesan imej yang berkuasa Ia bukan sahaja mengandungi fungsi operasi piksel dan warna yang kaya, tetapi juga boleh digunakan untuk pengarkiban imej dan pemprosesan kelompok.

1. Gambaran keseluruhan perpustakaan PIL

Pustaka PIL (Python Image Library) ialah pustaka bahasa Python pihak ketiga dan perlu dipasang melalui alat pip. Kaedah pemasangan perpustakaan PIL adalah seperti berikut Perlu diingatkan bahawa nama perpustakaan pemasangan adalah bantal.

:\>pip install pillow #或者 pip3 install pillow
Salin selepas log masuk

Pustaka PIL menyokong storan, paparan dan pemprosesan imej, ia boleh mengendalikan hampir semua format imej dan boleh menyelesaikan operasi seperti penskalaan, pemangkasan, tindanan dan menambah baris, imej dan teks pada imej.
Pustaka PIL terutamanya boleh memenuhi keperluan tenaga kinetik pengarkiban imej dan pemprosesan imej
(1) Pengarkiban imej: pemprosesan kelompok imej, penjanaan pratonton imej, penukaran format imej, dsb.
(2) Pemprosesan imej: pemprosesan imej asas, pemprosesan piksel, pemprosesan warna, dsb.
Bergantung pada fungsi, perpustakaan PIL merangkumi sejumlah 21 kelas berkaitan imej ini boleh dianggap sebagai sub-pustaka
atau modul dalam perpustakaan PIL adalah seperti berikut.
Imej, ImageChops, ImageColor, ImageCrackCode, ImageDraw.ImageEnhance, ImageFile, ImageFilelO, ImageFilter, ImageFont, ImageGL, ImageGrab, Imagemath, ImageOps, ImagePalette, ImagePath.ImageQt, ImageSequence, ImageStat ImageTk, ImageWin> Fokus pada
perpustakaan Sub-pustaka yang paling biasa digunakan: Image, ImageFilter, ImageEnhance.

2. Perpustakaan PIL Analisis kelas imej

Imej ialah kelas PIL yang paling penting Kaedah memperkenalkan kelas ini adalah seperti berikut:

>>>from PIL import Image
Salin selepas log masuk

Dalam PIL, mana-mana fail imej boleh diwakili oleh objek Imej. Kaedah pembacaan dan penciptaan imej bagi kelas Imej adalah seperti berikut (jumlahnya 5):

方法 描述
Image.open(filename) 根据参数加载图像文件
Image.new(mode, size, color) 根据给定参数创建一个新的图像
Image.open(StringlO.StringlO(buffer)) 从字符串中获取图像
Image.frombytes(mode, size, data) 根据像素点data 创建图像
Image.verify() 对图像文件完整性进行检查、返回异常

Apabila membuka fail imej melalui Imej, data raster imej tidak akan dinyahkod atau dimuatkan secara langsung, program hanya akan membacanya Maklumat metadata dalam pengepala fail imej Bahagian maklumat ini mengenal pasti format, warna, saiz, dsb. imej. Oleh itu, membuka fail akan menjadi sangat pantas, tidak kira bagaimana imej disimpan dan dimampatkan.
Untuk memuatkan fail imej, bentuk paling mudah adalah seperti berikut, selepas itu semua operasi akan berfungsi pada im.

>>>from PIL import Image>>>im = Image.open ("a.jpg")
Salin selepas log masuk

Apabila menggunakan mod interaktif IDLE untuk memproses fail imej, adalah disyorkan untuk menggunakan laluan penuh fail jika menggunakan format fail Python, adalah disyorkan untuk menggunakan laluan relatif dan meletakkan fail dan program dalam sebuah direktori.
Kelas Imej mempunyai 4 atribut biasa untuk memproses imej, seperti yang ditunjukkan dalam jadual (4 kesemuanya)

属性 描述
Image.format 标识图像格式或来源,如果图像不是从文件读取,值为None
Image.mode 图像的色彩模式,"L"为灰度图像、"RGB”为真彩色图像、"CMYK”为出版图像
Image.size 图像蜜度和高度,单位是像素(px),返回值是二元元组(tuple)
Image.palette 调色板属性,返回一个ImagePalette类型

Lihat atribut fail imej yang dibaca seperti berikut:

>>>print (im. format, im.size, im.mode)JPEG (900, 598) RGB
Salin selepas log masuk

Imej juga boleh membaca fail imej jujukan, termasuk GIF, FLI, FLC, TIFF dan fail format lain. Kaedah open() secara automatik memuatkan bingkai pertama dalam jujukan apabila membuka imej, dan kaedah seek() dan tell() boleh digunakan untuk bergerak antara bingkai yang berbeza.
Kaedah operasi imej jujukan kelas Imej (2 keseluruhannya):

方法 描述
Image.seek(frame) 跳转并返回图像中的指定帧
Image.tell() 返回当前帧的序号

【实例1】GIF文件图像提取
对一个GIF格式动态文件,提取其中各帧图像,并保存为文件。

from PIL import Image#读入一个GIF文件im = Image.open("pybit.gif")try:
	im.save('picframe{:02d).png'.format(im.tell()))
	while True:
		im.seek(im.tel1 ()+1)
		im.save('picframe{:02d).png'.format(im.tell()))except:print("处理结束")
Salin selepas log masuk

实例1展示了一种采用try-except编写程序的方法,通过seek()方法和save()方法配合提取GIF图像格式的每一帧,并保存为文件。
Image类的图像转换和保存方法 (共3个) 如表所示。

方法 描述
Image.save(filename, format) 将图像保存为filename文件名,format是图片格式
Image.convert(mode) 使用不同的参数,转换图像为新的模式
Image.thumbnail(size) 创建图像的缩略图,size是缩略图尺寸的二元元组

其中,save()方法有两个参数:文件名filename和图像格式format。如果调用时不指定保存格式,如微实例1,PIL将自动根据文件名filename后缀存储图像;如果指定格式,则按照格式存储。搭配采用open()和save()方法可以实现图像的格式转换,例如,将 jpg格式转换为png格式」代码如下。需要注意,Image 类的 save()方法主要用于保存文件到硬盘,PIL库还提供了功能更强大的格式转换方法。

im = Image.open("a.jpg")im.save("a.png")
Salin selepas log masuk

Image类可以缩放和旋转图像,其中,rotate(方法以逆时旋转的角度值作为参数来旋转图像。
Image类的图像旋转和缩放方法(共2个):

方法 描述
Image.resize(size) 按size大小调整图像,生成副本
Image.rotate(angle) 按angle角度旋转图像,生成副本

Image类能够对每个像素点或者一幅RGB图像的每个通道单独进行操作。split()方法能够将RGB 图像各颜色通道提取出来;
merge()方法能够将各独立通道再合成一幅新的图像。
lmage类的图像像素和通道处理方法(共4个):

方法 描述
Image.point(func) 根据函数func的功能对每个元素进行运算,返回图像副本
Image.split() 提取RGB图像的每个颜色通道,返回图像副本
Image.merge(mode,bands) 合并通道,其中mode表示色彩,bands表示新的色彩通道
Image.blend(im1,im2,alpha) 将两幅图片iml和im2按照如下公式插值后生成新的图像:im1 (1.0-alpha) + im2 alpha

【实例2】图像的颜色交换
交换图像中的颜色。可以通过分离RGB图片的3个颜色通道实现颜色交换。

from PIL import Imageim = Image.open('a.jpg')r, g, b = im.split()om = Image.merge("RGB" , (b, g, r))om.save('aBGR.jpg')
Salin selepas log masuk

运行结果:
Pustaka PIL pemprosesan imej Python
原图:
Pustaka PIL pemprosesan imej Python

操作图像的每个像素点需要通过函数实现,可以采用(lambda)函数和point()方法,例子如下,显示效果如图7所示。

>>>im=Image.apen('a.jpg')#打开文件>>>>r,g,b=im.splitO#获得RGB通道数据>>>>newg=g.point(lambda i:i*0.9)#将G通道颜色值变为原来的0.9>>>>newb=b.point(lambda i:i>>>om=Image.merge(im.mode,(r,newg,newb)#将3个通道合成为新图>>>>om.save('new_a.jpg')#输出图片
Salin selepas log masuk

3.图像的过滤和增强

PIL库的ImageFilter类和ImageEnhance类提供了过滤图像和增强图像的方法。
ImageFilter类共提供10种预定义图像过滤方法(共10个):

方法表示 描述
ImageFilter.BLUR 图像的模糊效果
ImageFilter.CONTOUR 图像的轮廓效果
ImageFilter.DETAIL 图像的细节效果
ImageFilter.EDGE_ENHANCE 图像的边界加强效果
ImageFilter.EDGE_ENHANCE_MORE 图像的阈值边界加强效果
ImageFilter.EMBOSS 图像的浮雕效果
ImageFilter.SMOOTHL 图像的平滑效果
ImageFilter.FIND_EDGES 图像的边界效果
ImageFilter.SMOOTH_MORE 图像的阈值平滑效果
ImageFilter.SHARPEN 图像的锐化效果

利用Image类的filter()方法可以使用ImageFilter类,使用方式如下:

Image.filter(ImageFilter.fuction)
Salin selepas log masuk

【实例3】图像的轮廓获取。
获取图像的轮廓,代码如下,程序执行效果如图所示,图片变得更加抽象、更具想象空间!

from PIL import Imagefrom PIL import ImageFilterim = Image.open('a.jpg')om = im.filter(ImageFilter.CONTOUR)om.save('aContour.jpg')
Salin selepas log masuk

运行结果:
Pustaka PIL pemprosesan imej Python
原图:
Pustaka PIL pemprosesan imej Python
ImageEnhance类提供了更高级的图像增强功能,如调整色彩度、亮度、对比度、锐化等。
ImageEnhance类的图像增强和滤镜方法(共5个):

方法 描述
ImageEnhance.enhance(factor) 对选择属性的数值增强factor倍
ImageEnhance.Color(im) 调整图像的颜色平衡
ImageEnhance.Contrast(im) 调整图像的对比度
ImageEnhance.Brightness(im) 调整图像的亮度
ImageEnhance.Sharpness(im) 调整图像的锐度

【实例4】图像的对比度增强。
增强图像的对比度为初始的20倍。代码如下,程序执行效果如图7所示。

from PIL import Imagefrom PIL import ImageEnhanceim = Image.open('a.jpg')om = ImageEnhance.Contrast(im)om.enhance(20).save(aEnContrast.jpg')
Salin selepas log masuk

运行结果:
Pustaka PIL pemprosesan imej Python
原图:Pustaka PIL pemprosesan imej Python

推荐学习:python

Atas ialah kandungan terperinci Pustaka PIL pemprosesan imej Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

PHP dan Python: Membandingkan dua bahasa pengaturcaraan yang popular PHP dan Python: Membandingkan dua bahasa pengaturcaraan yang popular Apr 14, 2025 am 12:13 AM

PHP dan Python masing -masing mempunyai kelebihan mereka sendiri, dan memilih mengikut keperluan projek. 1.PHP sesuai untuk pembangunan web, terutamanya untuk pembangunan pesat dan penyelenggaraan laman web. 2. Python sesuai untuk sains data, pembelajaran mesin dan kecerdasan buatan, dengan sintaks ringkas dan sesuai untuk pemula.

Bagaimana Debian Readdir Bersepadu Dengan Alat Lain Bagaimana Debian Readdir Bersepadu Dengan Alat Lain Apr 13, 2025 am 09:42 AM

Fungsi Readdir dalam sistem Debian adalah panggilan sistem yang digunakan untuk membaca kandungan direktori dan sering digunakan dalam pengaturcaraan C. Artikel ini akan menerangkan cara mengintegrasikan Readdir dengan alat lain untuk meningkatkan fungsinya. Kaedah 1: Menggabungkan Program Bahasa C dan Pipeline Pertama, tulis program C untuk memanggil fungsi Readdir dan output hasilnya:#termasuk#termasuk#includeintMain (intargc, char*argv []) {dir*dir; structdirent*entry; if (argc! = 2) {

Python dan Masa: Memanfaatkan masa belajar anda Python dan Masa: Memanfaatkan masa belajar anda Apr 14, 2025 am 12:02 AM

Untuk memaksimumkan kecekapan pembelajaran Python dalam masa yang terhad, anda boleh menggunakan modul, masa, dan modul Python. 1. Modul DateTime digunakan untuk merakam dan merancang masa pembelajaran. 2. Modul Masa membantu menetapkan kajian dan masa rehat. 3. Modul Jadual secara automatik mengatur tugas pembelajaran mingguan.

Cara mengkonfigurasi pelayan https di debian openssl Cara mengkonfigurasi pelayan https di debian openssl Apr 13, 2025 am 11:03 AM

Mengkonfigurasi pelayan HTTPS pada sistem Debian melibatkan beberapa langkah, termasuk memasang perisian yang diperlukan, menghasilkan sijil SSL, dan mengkonfigurasi pelayan web (seperti Apache atau Nginx) untuk menggunakan sijil SSL. Berikut adalah panduan asas, dengan mengandaikan anda menggunakan pelayan Apacheweb. 1. Pasang perisian yang diperlukan terlebih dahulu, pastikan sistem anda terkini dan pasang Apache dan OpenSSL: sudoaptDateSudoaptgradesudoaptinsta

Panduan Pembangunan Plug-In Gitlab di Debian Panduan Pembangunan Plug-In Gitlab di Debian Apr 13, 2025 am 08:24 AM

Membangunkan plugin Gitlab pada Debian memerlukan beberapa langkah dan pengetahuan tertentu. Berikut adalah panduan asas untuk membantu anda memulakan proses ini. Memasang GitLab terlebih dahulu, anda perlu memasang GitLab pada sistem Debian anda. Anda boleh merujuk kepada manual pemasangan rasmi GitLab. Dapatkan token akses API sebelum melakukan integrasi API, anda perlu mendapatkan token akses API Gitlab terlebih dahulu. Buka papan pemuka Gitlab, cari pilihan "AccessTokens" dalam tetapan pengguna, dan menghasilkan token akses baru. Akan dijana

Perkhidmatan apa yang Apache Perkhidmatan apa yang Apache Apr 13, 2025 pm 12:06 PM

Apache adalah wira di belakang internet. Ia bukan sahaja pelayan web, tetapi juga platform yang kuat yang menyokong lalu lintas yang besar dan menyediakan kandungan dinamik. Ia memberikan fleksibiliti yang sangat tinggi melalui reka bentuk modular, yang membolehkan pengembangan pelbagai fungsi seperti yang diperlukan. Walau bagaimanapun, modulariti juga membentangkan cabaran konfigurasi dan prestasi yang memerlukan pengurusan yang teliti. Apache sesuai untuk senario pelayan yang memerlukan keperluan yang sangat disesuaikan dan memenuhi keperluan kompleks.

Bahasa apa yang ditulis Apache? Bahasa apa yang ditulis Apache? Apr 13, 2025 pm 12:42 PM

Apache ditulis dalam C. Bahasa ini menyediakan kelajuan, kestabilan, mudah alih, dan akses perkakasan langsung, menjadikannya sesuai untuk pembangunan pelayan web.

PHP dan Python: Contoh dan perbandingan kod PHP dan Python: Contoh dan perbandingan kod Apr 15, 2025 am 12:07 AM

PHP dan Python mempunyai kelebihan dan kekurangan mereka sendiri, dan pilihannya bergantung kepada keperluan projek dan keutamaan peribadi. 1.PHP sesuai untuk pembangunan pesat dan penyelenggaraan aplikasi web berskala besar. 2. Python menguasai bidang sains data dan pembelajaran mesin.

See all articles