<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          10分鐘學(xué)會pillow圖像處理16式

          共 4187字,需瀏覽 9分鐘

           ·

          2020-07-28 18:29

          PIL:Python Imaging Library,是Python環(huán)境下最受歡迎的圖像處理庫,木有之一。

          pillow簡單優(yōu)雅而功能強大,是圖像相關(guān)機器學(xué)習(xí)任務(wù)中算法工程師的親密合作伙伴。

          公眾號后臺回復(fù)關(guān)鍵字:源碼,獲取本文全部代碼和對應(yīng)數(shù)據(jù)。

          我們將介紹pillow的如下16個圖片處理功能。

          1, 圖片讀寫

          2, 圖片與array互轉(zhuǎn)

          3, 圖片與string互轉(zhuǎn)

          4, 圖片由彩色轉(zhuǎn)灰度

          5, 圖片通道分離與合并

          6, 調(diào)整圖片尺寸

          7, 截取圖片部分區(qū)域

          8, 圖片旋轉(zhuǎn)

          9, 圖片翻轉(zhuǎn)

          10, 提取圖片邊緣

          11, 圖片高斯模糊

          12, 在圖片上繪制文字

          13, 在圖片上繪制直線

          14, 在圖片上繪制矩形

          15, 在圖片上繪制橢圓

          16, 在圖片上粘貼其他圖片

          安裝pillow非常簡單。

          pip?install?pillow

          一,圖片讀寫

          import?numpy?as?np?
          from?PIL?import?Image,ImageFilter,ImageDraw,ImageFont
          #?讀取圖片
          img?=?Image.open("./data/貓咪圖片.jpg")
          print(img.format,?img.size,?img.mode)
          print(img.info)
          img?
          JPEG?(641,?641)?RGB
          {'jfif':?257,?'jfif_version':?(1,?1),?'dpi':?(72,?72),?'jfif_unit':?1,?'jfif_density':?(72,?72)}

          #?保存圖片
          img.save("./data/貓咪圖片.png")?

          二,圖片與array互轉(zhuǎn)

          #?Image轉(zhuǎn)np.array
          img?=?Image.open("./data/貓咪圖片.jpg")
          arr?=?np.array(img)
          print(arr.shape)??
          print(arr.dtype)
          (641,?641,?3)
          uint8
          #?np.array轉(zhuǎn)Image

          arr?=?(np.ones((256,256))*np.arange(0,256)).astype(np.uint8)
          img?=?Image.fromarray(arr)
          img?

          三,圖片與string互轉(zhuǎn)

          #?Image轉(zhuǎn)string?

          import?base64
          from?io?import?BytesIO

          img?=?Image.open("./data/貓咪圖片.jpg")
          buffer?=?BytesIO()
          img.save(buffer,?'PNG')
          b?=?buffer.getvalue()
          s?=?base64.b64encode(b).decode("utf-8")?

          print(s[0:1000])
          iVBORw0KGgoAAAANSUhEUgAAAoEAAAKBCAIAAACnMebvAAEAAElEQVR4nOz96bMtSXIfiLl7ROR2lru+raqrqxsEQBAkRuKMRHI0kj6OSTLJ9M+KRumTTJwxyWZGJm6DIQguAHqp7lree3c5S2ZGhLs+eIbfOOe+V13dKGxjCHt27b5z82RGRnj4z3fHT69fJB3CiEhEDCIi5H1KKQt775umEYRpmsZx/PGnn3Vd94tf/OLu7u7y8lJExnG8uro6Ho/ee+ccMwNA13UXFxebzeZnP/uZcw4R53k+Ho/TNIkIIiIiMxMREaWUcs6bzebm5mae5/1+H2NsmiaEkHOe55mZvfcAkFKa5xkA9OL1er3ebv/oj/7IOSciOUbv/cPDAwr0fb/uh5ubmxDCeDgi4vF4/NnPfjYHBAAsQ38HgJxzSklEiAgARKRt22EYmqaZpul4PM7zbDMXEfgbMnSqurP2EwDGcaz/axf/DXq1aZq6rgMAEfmd3/mdm5ubn/3sZz//+c9TSgCgJCEiIYS+7+d5nqYp5+y9R8Scs4g45z5287NdtrUaOdknKICIZNfI8tOWlABczuv1uuu6lNI0TXo6mFkncHZ/AEhxdM7ps5TenHPOuZTSarXquo6Z7eAw80wZAHJMMUZP5L3PMY2Ho3Nuu1oPfS8iHJOIcMoxRiYnIjlnvQ8UCsk5O+dCCCEEXRb9PMWdnt+cc4wx50xEeuXxeBSRYRj6vnfO6XmJhwcqQ99UxzAMIqK/1y8ukpUVzPOsR7tt26ZphmGwZdEn6jQaDHoHRBTCnPM4juM89X2/Px6dcxcXF74JMcYQwna7TeCULyknSSkhovfezoWus1F+hFnXvGmapml0bjlnKIxCr0TEEIL3fjelpml0xexk7ff74/GoX1TmZqv9W3/3d66vr5l5HMfNsOr7npkJMMYoOSsnzjEpt5znOca42+2Ucg6HwzzPV1dXn3766YsXL0IIXdc1TQMA8zyP4xhj
          #?string轉(zhuǎn)Image?

          b?=?base64.b64decode(s.encode("utf-8"))?
          buffer?=?BytesIO(b)?
          img?=?Image.open(buffer)
          img?

          四,圖片由彩色轉(zhuǎn)灰度

          #?轉(zhuǎn)成灰度
          img?=?Image.open("./data/貓咪圖片.jpg")
          img.convert("L")

          五,圖片通道分離與合并

          #?分離通道
          img?=?Image.open("./data/貓咪圖片.jpg")
          r,g,b?=?img.split()?
          b?

          #?合并通道
          Image.merge(mode?=?"RGBA",?bands?=?[r,g,b,r])

          六, 調(diào)整圖片尺寸

          #?調(diào)整大小
          img?=?Image.open("./data/貓咪圖片.jpg")
          print(img.size)
          img_resized?=?img.resize((300,300))
          print(img_resized.size)
          img_resized?
          (641,?641)
          (300,?300)

          七, 截取圖片部分區(qū)域

          img?=?Image.open("./data/貓咪圖片.jpg")
          img_croped?=?img.crop(box?=?[78,24,455,320])?
          print(img_croped.size)
          img_croped
          (377,?296)

          八, ?圖片旋轉(zhuǎn)

          img?=?Image.open("./data/貓咪圖片.jpg")
          img_rotated?=?img.rotate(15,center?=?(0,0))?#以center為中心逆時針旋轉(zhuǎn)
          img_rotated

          九, 圖片翻轉(zhuǎn)

          img?=?Image.open("./data/貓咪圖片.jpg")

          #?左右翻轉(zhuǎn)
          img_left_right?=?img.transpose(Image.FLIP_LEFT_RIGHT)
          img_left_right?

          #?上下翻轉(zhuǎn)
          img_top_bottom?=?img.transpose(Image.FLIP_TOP_BOTTOM)
          img_top_bottom

          十, 提取圖片邊緣

          img?=?Image.open("./data/貓咪圖片.jpg")

          img_edges?=?img.filter(ImageFilter.FIND_EDGES)
          img_edges?

          十一, 圖片高斯模糊

          img?=?Image.open("./data/貓咪圖片.jpg")
          img_blur?=?img.filter(ImageFilter.GaussianBlur(radius=3))
          img_blur?

          十二, 在圖片上繪制文字

          img?=?Image.open("./data/貓咪圖片.jpg")
          draw?=?ImageDraw.Draw(img)
          arial?=?ImageFont.truetype('./data/simsun.ttc',?46)
          draw.text((250,450),"敢梭哈嗎?",font?=arial,?fill="white")
          img

          十三, 在圖片上繪制直線

          img?=?Image.open("./data/貓咪圖片.jpg")
          draw?=?ImageDraw.Draw(img)

          draw.line([0,0,641,641],fill?=?"red",width?=?5)
          img

          十四, 在圖片上繪制矩形

          img?=?Image.open("./data/貓咪圖片.jpg")
          draw?=?ImageDraw.Draw(img)

          draw.rectangle([78,24,455,320],?fill=None,?outline?='lawngreen',width?=?5)
          img

          十五, 在圖片上繪制橢圓

          img?=?Image.open("./data/貓咪圖片.jpg")
          draw?=?ImageDraw.Draw(img)
          draw.arc(xy?=?[78,24,455,320],start?=?0,end?=?360,fill="red",width=5)
          img

          十六, 在圖片上粘貼其他圖片

          img?=?Image.open("./data/貓咪圖片.jpg")
          img_resized?=?img.resize((150,150))
          img.paste(img_resized,box?=?[460,50])
          img

          如果對本文內(nèi)容理解上有需要進(jìn)一步和作者交流的地方,歡迎在公眾號"Python與算法之美"下留言。作者時間和精力有限,會酌情予以回復(fù)。

          也可以在公眾號后臺回復(fù)關(guān)鍵字:加群,加入讀者交流群和大家討論。

          瀏覽 32
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  男女系列视频福利网站 | 亚洲激情偷拍 | 亚洲AV综合AV东京热三区 | 伊人婷婷| 欧美wwwxxx |