图片二:matplotlib、PIL、CV2操作图片
生活随笔
收集整理的這篇文章主要介紹了
图片二:matplotlib、PIL、CV2操作图片
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? 處理圖像的方式有三種方式,分別使用PIL, matplotlib, CV2庫
1、matplotlib讀取和保存圖片:
讀取通道順序:RGB
數據類型:numpy.ndarray
數據類型:對于png格式的圖片,讀取后的數據類型是float32, 0~1之間的小數,對于其他格式的圖片,讀取后的數據類型是uint8, 0~255
import matplotlib.pyplot as plt#讀取圖片,讀取通道的順序是RGB plt_img = plt.imread('./data/1.jpg') #uint8#保存圖片 plt.imsave('D:/data/3.png', plt_img) #類型可以是jpg或png#顯示彩色圖片(三通道) plt.imshow(plt_img)#顯示灰度圖片(單通道) plt.imshow(plt_img, cmap='gray') #如果不加cmap='gray',那么顯示的是偽彩色?
2、PIL讀取和保存圖片:
讀取通道順序:RGB?
返回的數據類型:PIL,
轉成numpy后的像素類型和大小:uint8, 0~255
from PIL import Image import numpy as np img_path = './data/1.jpg' #圖片路徑#PIL讀取圖片 PIL_img = Image.open(img_path) #讀取圖片,讀取通道是RGB,不用轉換, 圖片是PIL數據類型#PIL保存圖片 PIL_img.save('./data/2.jpg') ##將PIL類型轉成numpy類型, numpy數組格式(H,W,C=3) np_img = np.asanyarray(PIL_img) #將PIL類型轉成numpy類型,數據類型是uint8, (H, W, C)#用PIL顯示 PIL_img.show() #用matplotlib.pyplot顯示 plt.imshow(np_img) #讀取通道是RGB, 不用轉換#將彩色圖片轉成灰度圖片 s=np.array(PIL_img.convert('L'))3、cv2讀取和保存圖片:?
讀取通道順序:BRG,
數據類型:numpy.ndarray
像素類型:uint8,? 0~255
import cv2 import numpy as np#cv2讀取圖片,讀取后的類型是numpy類型的數組, 讀取的通道順序是BRG cv2_img = cv2.imread('./data/1.jpg') #numpy數組,元素類型是uinit8 0~255#保存圖片,第二個是numpy數組或mat數組,類型是jpg或png cv2.imwrite('D:/data/1.jpg', cv2_img) ##CV2顯示圖片,只能用來顯示通道順序為BRG的numpy數組,不然產生色差 cv2.imshow('labels',cv2_img) cv2.waitKey(0)#matplotlib.pyplot顯示 plt.imshow(cv2_img[:,:,::-1]) #讀取通道是BGR,所以[:,:,::-1]將其轉換成RGB格式圖片三:numpy制作雪碧圖
?
總結
以上是生活随笔為你收集整理的图片二:matplotlib、PIL、CV2操作图片的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图片一:单通道、三通道、灰度图、黑白图、
- 下一篇: 图片三:numpy制作雪碧图(如何将多个