PIL.Image.open和cv2.imread的比較與相互轉(zhuǎn)換的方法
摘要
PIL.Image.open讀入的是RGB順序,而opencv中cv2.imread讀入的是BGR通道順序 。cv2.imread會顯示圖片更藍一些。
cv2.imread(path,讀取方式)方法
第一個參數(shù)是圖片的路徑。
第二個參數(shù)是讀取方式:cv2.IMREAD_COLOR:讀入一副彩色圖片;cv2.IMREAD_GRAYSCALE:以灰度模式讀入圖片;cv2.IMREAD_UNCHANGED:讀入一幅圖片,并包括其alpha通道。
默認為cv2.IMREAD_COLOR。
返回值是(height,width,channel)數(shù)組,channel的順序是BGR順序。
例:
import cv2 from PIL import Image imagePath='4.jpg' import matplotlib.pyplot as plt cvImage=cv2.imread(imagePath) print(cvImage.shape) plt.subplot(121) plt.imshow(cvImage) plt.show()

PIL.Image.open(path)方法
參數(shù):圖片的路徑
返回值: <PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=374x288 at 0x13EA15F7808>
需要用img=np.array(img)做轉(zhuǎn)換,才能看到shape屬性,是(height,width,channel)數(shù)組,channel的通道順序為RGB。
例:
from PIL import Image import numpy as np imagePath='4.jpg' import matplotlib.pyplot as plt ''' cvImage=cv2.imread(imagePath) print(cvImage.shape) plt.subplot(121) plt.imshow(cvImage) plt.show() ''' img=Image.open(imagePath) img=np.array(img) print(img.shape) plt.imshow(img) plt.show()

二者之間的相互轉(zhuǎn)化
主要用到的函數(shù)cv2.cvtColor(p1,p2) 是顏色空間轉(zhuǎn)換函數(shù),p1是需要轉(zhuǎn)換的圖片,p2是轉(zhuǎn)換成何種格式。
本例用到的格式是cv2.COLOR_RGB2BGR和cv2.COLOR_BGR2RGB
代碼:
def PILImageToCV(imagePath): # PIL Image轉(zhuǎn)換成OpenCV格式 img = Image.open(imagePath) plt.imshow(img) img = cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR) plt.imshow(img) plt.show() def CVImageToPIL(imagePath): # OpenCV圖片轉(zhuǎn)換為PIL image img = cv2.imread(imagePath) plt.imshow(img) img2 = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) plt.imshow(img2) plt.show()
判斷圖像數(shù)據(jù)是否是OpenCV格式:
isinstance(img, np.ndarray)
到此這篇關(guān)于PIL.Image.open和cv2.imread的比較與相互轉(zhuǎn)換的方法的文章就介紹到這了,更多相關(guān)PIL.Image.open和cv2.imread內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pytorch中torch.max和Tensor.view函數(shù)用法詳解
今天小編就為大家分享一篇pytorch中torch.max和Tensor.view函數(shù)用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
python如何實現(xiàn)遠程控制電腦(結(jié)合微信)
這篇文章主要介紹了python如何實現(xiàn)遠程控制電腦,利用python設(shè)計了一個程序來實現(xiàn)自由管控,感興趣的小伙伴們可以參考一下2015-12-12
python:解析requests返回的response(json格式)說明
這篇文章主要介紹了python:解析requests返回的response(json格式)說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04

