日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

机器学习四剑客4——PIL

發(fā)布時(shí)間:2023/11/27 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习四剑客4——PIL 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • PIL庫(kù)是一個(gè)具有強(qiáng)大圖像處理能力的第三方庫(kù)
  • 在命令行下的安裝方法:pip install pillow
  • 在使用過(guò)程中的引入方法:from PIL import Image
  • Image 是 PIL 庫(kù)中代表一個(gè)圖像的類(對(duì)象)
  • 圖像是一個(gè)由像素組成的二維矩陣,每個(gè)元素是一個(gè)RGB值
# 讀取圖片
from PIL import Image
import numpy as np
from matplotlib import pyplot as pltimg = Image.open('D:/Users/xuyf2/Desktop/jier/photo.jpg')
print('img',img)arr = np.array(img)       # 獲取圖片的數(shù)組
print('shape',arr.shape)  # 獲取數(shù)組的狀態(tài)
print(arr)
# img.show()
plt.imshow(img)
plt.show()
  • img.convert(mode=None, matrix=None, dither=None, palette=0, colors=256)
  • PIL有九種不同模式: 1,L,P,RGB,RGBA,CMYK,YCbCr,I,F
  • 模式1 :二值圖像? ??每個(gè)像素用8個(gè)bit表示,0表示黑,255表示白
  • 模式L: 灰度圖像? ? 每個(gè)像素用8個(gè)bit表示,0為黑,255為白,其他數(shù)字表示不同的灰度
  • 轉(zhuǎn)換公式:L = R * 299/1000 + G * 587/1000+ B * 114/1000
# 讀取圖片
from PIL import Image
from matplotlib import pyplot as pltimg = Image.open('D:/Users/xuyf2/Desktop/jier/company.jpg')#圖片灰度處理
gray_img = img.convert('L')plt.imshow(gray_img)
plt.show()
  • ?獲取圖像基本信息
from PIL import Imageimg = Image.open('D:/Users/xuyf2/Desktop/jier/company.jpg')
# 獲取圖片的基本信息
bands = img.getbands()                    # 顯示該圖片的所有通道
print(bands)
bbox = img.getbbox()                      # 獲取圖片左上角和右下角的坐標(biāo)
print(bbox)
width, height = img.width, img.height     # 獲取圖片寬度和高度
print(width, height)
  • 圖片旋轉(zhuǎn)
from PIL import Image
import matplotlib.pyplot as pltimg = Image.open('D:/Users/xuyf2/Desktop/jier/company.jpg')  # 讀取圖片
img_rotate = img.rotate(45)                                  # 將圖片旋轉(zhuǎn)45度
plt.imshow(img_rotate)                                       # 顯示旋轉(zhuǎn)后的圖片
plt.show()
  • 圖片裁剪
from PIL import Image
import matplotlib.pyplot as pltimg = Image.open('D:/Users/xuyf2/Desktop/jier/company.jpg')  # 讀取圖片
img1 = img.crop((126,111,381,249))
# 剪切 crop()四個(gè)參數(shù)分別是:(左上角點(diǎn)的x坐標(biāo),左上角點(diǎn)的y坐標(biāo),右下角點(diǎn)的x坐標(biāo),右下角點(diǎn)的y坐標(biāo))
img1.save('D:/Users/xuyf2/Desktop/jier/company_1.jpg')       # 保存圖片
plt.imshow(img1)                                             # 展示圖片
plt.show()
  • 圖片縮放
from PIL import Image
import matplotlib.pyplot as pltimg = Image.open('D:/Users/xuyf2/Desktop/jier/company.jpg')          # 讀取圖片
print(img.size)
width,height = img.size
img1 = img.resize((int(width*0.6),int(height*0.4)),Image.ANTIALIAS)  # 縮放print(img1.size)#展示圖片
plt.imshow(img1)
plt.show()
  • ?圖片拼接

from PIL import Image
import cv2
from matplotlib import pyplot as pltdef join(png1, png2, flag='horizontal'):img1, img2 = Image.open(png1), Image.open(png2)# 統(tǒng)一圖片尺寸,可以自定義設(shè)置(寬,高)img1 = img1.resize((110, 124), Image.ANTIALIAS)img2 = img2.resize((110, 124), Image.ANTIALIAS)size1, size2 = img1.size, img2.sizeif flag == 'horizontal':joint = Image.new('RGB', (size1[0] + size2[0], size1[1]))loc1, loc2 = (0, 0), (size1[0], 0)joint.paste(img1, loc1)joint.paste(img2, loc2)plt.imshow(joint)plt.show()# cv2.imshow("joint", "joint")# joint.save('horizontal.png')elif flag == 'vertical':joint = Image.new('RGB', (size1[0], size1[1] + size2[1]))loc1, loc2 = (0, 0), (0, size1[1])joint.paste(img1, loc1)joint.paste(img2, loc2)# joint.save('vertical.png')if __name__ == '__main__':# 兩張圖片地址:png1 = r"D:/Users/xuyf2/Desktop/lego_jier/crop2/2cp1637243269.jpg"png2 = r"D:/Users/xuyf2/Desktop/lego_jier/crop1/1cp1637243581.jpg"# 橫向拼接join(png1, png2, flag='horizontal')# 縱向拼接# join(png1, png2, flag='vertical')

總結(jié)

以上是生活随笔為你收集整理的机器学习四剑客4——PIL的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。