本文介紹如何仔PIL和OpenCV之間圖像數(shù)據(jù)的轉(zhuǎn)換,因?yàn)橛袝r(shí)候在圖片處理速度上PIL會(huì)更勝一籌,現(xiàn)在這個(gè)轉(zhuǎn)換方法寫成一個(gè)函數(shù),以便它轉(zhuǎn)換具有灰度或 alpha 通道的圖像。
PIL圖像數(shù)據(jù)格式轉(zhuǎn)換成OpenCV圖像數(shù)據(jù)格式
1,使用cv2轉(zhuǎn)換色彩的方法
import numpy as np import cv2 def pil2cv(PIL_image): ''' PIL型 -> OpenCV型 ''' cv2_image = np.array(PIL_image, dtype=np.uint8) if cv2_image.ndim == 2: # 黑白 pass elif cv2_image.shape[2] == 3: # 彩色的3通道 new_image = cv2.cvtColor(cv2_image, cv2.COLOR_RGB2BGR) elif cv2_image.shape[2] == 4: # 包含透明的4通道 cv2_image = cv2.cvtColor(cv2_image, cv2.COLOR_RGBA2BGRA) return cv2_image
2,不 使用cv2轉(zhuǎn)換色彩的方法
import numpy as np def pil2cv(PIL_image): ''' PIL型 -> OpenCV型 ''' cv2_image = np.array(PIL_image, dtype=np.uint8) if cv2_image.ndim == 2: # 黑白 pass elif cv2_image.shape[2] == 3: # 彩色的3通道 cv2_image = cv2_image[:, :, ::-1] elif cv2_image.shape[2] == 4: # 包含透明的4通道 cv2_image = cv2_image[:, :, [2, 1, 0, 3]] return cv2_image
OpenCV圖像數(shù)據(jù)格式轉(zhuǎn)換成PIL圖像數(shù)據(jù)格式
1,使用cv2轉(zhuǎn)換色彩的方法
from PIL import Image import cv2 def cv2pil(cv2_image): ''' OpenCV型 -> PIL型 ''' pil_image = cv2_image.copy() if pil_image.ndim == 2: # 黑白 pass elif pil_image.shape[2] == 3: # 彩色的3通道 pil_image = cv2.cvtColor(pil_image, cv2.COLOR_BGR2RGB) elif pil_image.shape[2] == 4: # 包含透明的4通道 pil_image = cv2.cvtColor(pil_image, cv2.COLOR_BGRA2RGBA) pil_image = Image.fromarray(pil_image) return pil_image
2,不使用cv2轉(zhuǎn)換色彩的方法
from PIL import Image def cv2pil(cv2_image): ''' OpenCV型 -> PIL型 ''' pil_image = cv2_image.copy() if pil_image.ndim == 2: # 黑白 pass elif pil_image.shape[2] == 3: # 彩色的3通道 pil_image = pil_image[:, :, ::-1] elif pil_image.shape[2] == 4: # 包含透明的4通道 pil_image = pil_image[:, :, [2, 1, 0, 3]] pil_image = Image.fromarray(new_pil_imageimage) return pil_image
審核編輯:劉清
-
圖像數(shù)據(jù)
+關(guān)注
關(guān)注
0文章
52瀏覽量
11313 -
OpenCV
+關(guān)注
關(guān)注
31文章
635瀏覽量
41556 -
PIL
+關(guān)注
關(guān)注
0文章
19瀏覽量
8647
原文標(biāo)題:PIL圖像和OpenCV圖像數(shù)據(jù)格式互相轉(zhuǎn)換
文章出處:【微信號(hào):凌順實(shí)驗(yàn)室,微信公眾號(hào):凌順實(shí)驗(yàn)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論