最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 圖像處理之PIL庫詳解用法

 更新時(shí)間:2021年11月02日 15:08:09   作者:Paranoid☆  
對(duì)于圖像識(shí)別,大量的工作在于圖像的處理,處理效果好,那么才能很好地識(shí)別,因此,良好的圖像處理是識(shí)別的基礎(chǔ)。在Python中,有一個(gè)優(yōu)秀的圖像處理框架,就是PIL庫,本文會(huì)介紹PIL庫中的各種方法,并列舉相關(guān)例子

前言

提示:以下是本篇文章正文內(nèi)容

🍒PIL庫概述

PIL庫支持圖像存儲(chǔ)、 顯示和處理, 它能夠處理幾乎所有圖片格式, 可以完成
對(duì)圖像的縮放、 剪裁、 疊加以及向圖像添加線條、 圖像和文字等操作

PIL庫可以完成圖像歸檔和圖像處理兩方面功能需求:
(1)圖像歸檔:對(duì)圖像進(jìn)行批處理、 生成圖像預(yù)覽、 圖像格式轉(zhuǎn)換等

(2)圖像處理:圖像基本處理、 像素處理、 顏色處理等

🍓Image類解析

💚圖像的創(chuàng)建

在PIL中, 任何一個(gè)圖像文件都可以用Image對(duì)象表示Image類的圖像讀取和創(chuàng)建方法

方法 描述
Image.open(filename) 根據(jù)參數(shù)加載圖像文件
Image.new(mode, size, color) 根據(jù)給定參數(shù)創(chuàng)建一個(gè)新的圖像
Image.open(StringIO.StringIO(buffer)) 從字符串中獲取圖像
Image.frombytes(mode, size, data) 根據(jù)像素點(diǎn)data創(chuàng)建圖像
Image.verify() 對(duì)圖像文件完整性進(jìn)行檢查, 返回異常
from PIL import Image
im = Image.open(r"E:\Pycharm\Project\pictures\2049675.jpg")
im.show() // 顯示

基本上如下圖

在這里插入圖片描述

💙圖像的屬性

屬性 描述
Image.format 標(biāo)識(shí)圖像格式或來源, 如果圖像不是從文件讀取, 值是None
Image.mode 圖像的色彩模式, "L"灰度圖像、 "RGB"真彩色圖像、 "CMYK"出版圖像
Image.format 標(biāo)識(shí)圖像格式或來源, 如果圖像不是從文件讀取, 值是None
Image.size 圖像寬度和高度, 單位是像素(px) , 返回值是二元元組(tuple)
Image.palette 調(diào)色板屬性, 返回一個(gè)ImagePalette類型
from PIL import Image
im = Image.open(r"E:\Pycharm\Project\pictures\2049675.jpg")
im.show()
print(im.format,im.size)

# 結(jié)果
# JPEG (1920, 1080)

💜圖像的轉(zhuǎn)換

方法 描述
Image.save(filename, format) 將圖像保存為filename文件名, format是圖片格式
Image.convert(mode) 使用不同的參數(shù), 轉(zhuǎn)換圖像為新的模式
Image.thumbnail(size) 創(chuàng)建圖像的縮略圖, size是縮略圖尺寸的二元元組

jpg 轉(zhuǎn)換成png

from PIL import Image
im = Image.open(r"E:\Pycharm\Project\pictures\2049675.jpg")
print(im)
im.save(r"E:\Pycharm\Project\pictures\2049675changed.png")
im = Image.open(r"E:\Pycharm\Project\pictures\2049675changed.png")
print(im)
im.show()

# 結(jié)果
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=1920x1080 at 0x1A8DE865F40>
<PIL.PngImagePlugin.PngImageFile image mode=RGB size=1920x1080 at 0x1A8DE8D2E80>

GIF文件圖像提取。
對(duì)一個(gè)GIF格式動(dòng)態(tài)文件, 提取其中各幀圖像, 并保存為文件

from PIL import Image
im = Image.open(r"E:\Pycharm\Project\pictures\21.gif") # 讀入一個(gè)GIF文件
try:
    im.save('picframe{:02d}.png'.format(im.tell()))
    while True:
        im.seek(im.tell()+1)  # 幀的位置
        im.save('picframe{:02d}.png'.format(im.tell()))
except:
    print("處理結(jié)束")

結(jié)果

在這里插入圖片描述

tell()方法:返回當(dāng)前幀所處位置,從0開始計(jì)算

縮略圖

from PIL import Image
im = Image.open(r"E:\Pycharm\Project\pictures\2050074.jpg")
print(im)
im.thumbnail((128, 99))
im.save("mm","JPEG")
print(im)
im.show()

# 結(jié)果
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=2757x2135 at 0x238DFCD5DC0>
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=128x99 at 0x238DFCD5DC0>

在這里插入圖片描述

💗圖像處理

1.Image類可以縮放和旋轉(zhuǎn)圖像, 其中, rotate()方法以逆時(shí)針旋轉(zhuǎn)的角度值作
為參數(shù)來旋轉(zhuǎn)圖像。

方法 描述
Image.resize(size) 按size大小調(diào)整圖像, 生成副本
Image.rotate(angle) 按angle角度旋轉(zhuǎn)圖像, 生成副本

2.Image類能夠?qū)γ總€(gè)像素點(diǎn)或者一幅RGB圖像的每個(gè)通道單獨(dú)進(jìn)行操作,split()
方法能夠?qū)GB圖像各顏色通道提取出來, merge()方法能夠?qū)⒏鳘?dú)立通道再合成一幅新的圖像。

方法 描述
Image.point(func) 根據(jù)函數(shù)func功能對(duì)每個(gè)元素進(jìn)行運(yùn)算, 返回圖像副本
Image.split() 提取RGB圖像的每個(gè)顏色通道, 返回圖像副本
Image.merge(mode, bands) 合并通道 , 采用mode色彩, bands是新色的色彩通道
Image.blend(im1,im2,alpha) 將兩幅圖片im1和im2按照如下公式插值后生成新的圖像:im1 * (1.0-alpha) + im2 * alpha

圖像的顏色交換
交換圖像中的顏色, 可以通過分離RGB圖片的三個(gè)顏色通道實(shí)現(xiàn)顏色交換

from PIL import Image
im = Image.open(r"E:\Pycharm\Project\pictures\2050536.jpg") #打開文件
r, g, b = im.split() #獲得RGB通道數(shù)據(jù)
newg = g.point(lambda i: i * 0.9) # 將G通道顏色值變?yōu)樵瓉淼?.9倍
newb = b.point(lambda i: i < 100) # 選擇B通道值低于100的像素點(diǎn)
om = Image.merge(im.mode, (r, newg, newb)) # 將3個(gè)通道合形成新圖像
om.save(r"E:\Pycharm\Project\pictures\aa.jpg") #輸出圖片
om.show()

原圖:

在這里插入圖片描述

交換后

在這里插入圖片描述

3.圖像的過濾和增強(qiáng)
PIL庫的ImageFilter類和ImageEnhance類提供了過濾圖像和增強(qiáng)圖像的方法, 共10種

方法表示 描述
ImageFilter.BLUR 圖像的模糊效果
ImageFilter.CONTOUR 圖像的輪廓效果
ImageFilter.DETAIL 圖像的細(xì)節(jié)效果
ImageFilter.EDGE_ENHANCE 圖像的邊界加強(qiáng)效果
ImageFilter.EDGE_ENHANCE_MORE 圖像的閾值邊界加強(qiáng)效果
ImageFilter.EMBOSS 圖像的浮雕效果
ImageFilter.FIND_EDGES 圖像的邊界效果
ImageFilter.SMOOTH 圖像的平滑效果
ImageFilter.SMOOTH_MORE 圖像的閾值平滑效果
ImageFilter.SHARPEN 圖像的銳化效果

輪廓效果

from PIL import Image
from PIL import ImageFilter
im = Image.open(r"E:\Pycharm\Project\pictures\2050558.jpg")
om = im.filter(ImageFilter.CONTOUR)
om.save('abc.jpg')
om.show()

原圖:

在這里插入圖片描述

修改后:

在這里插入圖片描述

4.ImageEnhance類提供了更高級(jí)的圖像增強(qiáng)需求, 它提供調(diào)整色彩度、 亮度、 對(duì)比度、 銳化等功能

方法 描述
ImageEnhance.enhance(factor) 對(duì)選擇屬性的數(shù)值增強(qiáng)factor倍
ImageEnhance.Color(im) 調(diào)整圖像的顏色平衡
ImageEnhance.Contrast(im) 調(diào)整圖像的對(duì)比度
ImageEnhance.Brightness(im) 調(diào)整圖像的亮度
ImageEnhance.Sharpness(im) 調(diào)整圖像的銳度

總結(jié)

提示:這里對(duì)文章進(jìn)行總結(jié):

到此這篇關(guān)于Python 圖像處理之PIL庫詳解用法的文章就介紹到這了,更多相關(guān)Python 圖像處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python性能測(cè)量工具cProfile使用解析

    python性能測(cè)量工具cProfile使用解析

    這篇文章主要介紹了python性能測(cè)量工具cProfile使用解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Python decorator攔截器代碼實(shí)例解析

    Python decorator攔截器代碼實(shí)例解析

    這篇文章主要介紹了Python decorator攔截器代碼實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 讓Python程序定時(shí)執(zhí)行的8種方法整理

    讓Python程序定時(shí)執(zhí)行的8種方法整理

    在日常工作中,我們常常會(huì)用到需要周期性執(zhí)行的任務(wù),一種方式是采用?Linux?系統(tǒng)自帶的?crond?結(jié)合命令行實(shí)現(xiàn),另外一種方式是直接使用Python。本文整理了一下?Python?定時(shí)任務(wù)的實(shí)現(xiàn)方式,希望對(duì)大家有所幫助
    2023-01-01
  • 詳解tensorflow訓(xùn)練自己的數(shù)據(jù)集實(shí)現(xiàn)CNN圖像分類

    詳解tensorflow訓(xùn)練自己的數(shù)據(jù)集實(shí)現(xiàn)CNN圖像分類

    本篇文章了tensorflow訓(xùn)練自己的數(shù)據(jù)集實(shí)現(xiàn)CNN圖像分類,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • Python Tkinter創(chuàng)建GUI應(yīng)用程序的示例

    Python Tkinter創(chuàng)建GUI應(yīng)用程序的示例

    Tkinter提供了豐富的功能和靈活的接口,讓開發(fā)者能夠輕松地構(gòu)建出各種各樣的圖形用戶界面,本文介紹了使用Python的Tkinter庫創(chuàng)建圖形用戶界面GUI應(yīng)用程序,感興趣的可以了解一下
    2024-12-12
  • python 遞歸深度優(yōu)先搜索與廣度優(yōu)先搜索算法模擬實(shí)現(xiàn)

    python 遞歸深度優(yōu)先搜索與廣度優(yōu)先搜索算法模擬實(shí)現(xiàn)

    這篇文章主要介紹了python 遞歸深度優(yōu)先搜索與廣度優(yōu)先搜索算法模擬實(shí)現(xiàn) ,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-10-10
  • Python學(xué)習(xí)之字典的常用方法總結(jié)

    Python學(xué)習(xí)之字典的常用方法總結(jié)

    這篇文章主要為大家介紹了Python中字典的幾個(gè)常用方法總結(jié),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python字典有一定幫助,需要的可以參考一下
    2022-03-03
  • 基于Python實(shí)現(xiàn)一個(gè)簡(jiǎn)易的數(shù)據(jù)管理系統(tǒng)

    基于Python實(shí)現(xiàn)一個(gè)簡(jiǎn)易的數(shù)據(jù)管理系統(tǒng)

    為了方便的實(shí)現(xiàn)記錄數(shù)據(jù)、修改數(shù)據(jù)沒有精力去做一個(gè)完整的系統(tǒng)去管理數(shù)據(jù)。因此,在python的控制臺(tái)直接實(shí)現(xiàn)一個(gè)簡(jiǎn)易的數(shù)據(jù)管理系統(tǒng),包括數(shù)據(jù)的增刪改查等等。感興趣的可以跟隨小編一起學(xué)習(xí)一下
    2021-12-12
  • 使用anaconda安裝pytorch的實(shí)現(xiàn)步驟

    使用anaconda安裝pytorch的實(shí)現(xiàn)步驟

    這篇文章主要介紹了使用anaconda安裝pytorch的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Python導(dǎo)入父文件夾中模塊并讀取當(dāng)前文件夾內(nèi)的資源

    Python導(dǎo)入父文件夾中模塊并讀取當(dāng)前文件夾內(nèi)的資源

    這篇文章主要給大家介紹了關(guān)于Python導(dǎo)入父文件夾中模塊并讀取當(dāng)前文件夾內(nèi)資源的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11

最新評(píng)論

临猗县| 从化市| 镇平县| 井陉县| 东阿县| 墨脱县| 东城区| 南木林县| 靖江市| 开平市| 尉氏县| 柘城县| 鱼台县| 兖州市| 化隆| 英山县| 万州区| 武邑县| 上林县| 来安县| 巫山县| 天气| 苏州市| 图们市| 惠州市| 余江县| 忻州市| 顺昌县| 彭阳县| 松江区| 华宁县| 时尚| 扶余县| 上虞市| 金堂县| 攀枝花市| 延津县| 平邑县| 沾益县| 平远县| 海南省|