中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何比較和相互轉換PIL.Image.open和cv2.imread

發布時間:2020-07-20 09:18:39 來源:億速云 閱讀:227 作者:小豬 欄目:開發技術

這篇文章主要講解了如何比較和相互轉換PIL.Image.open和cv2.imread,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

摘要

PIL.Image.open讀入的是RGB順序,而opencv中cv2.imread讀入的是BGR通道順序 。cv2.imread會顯示圖片更藍一些。

cv2.imread(path,讀取方式)方法

第一個參數是圖片的路徑。

第二個參數是讀取方式:cv2.IMREAD_COLOR:讀入一副彩色圖片;cv2.IMREAD_GRAYSCALE:以灰度模式讀入圖片;cv2.IMREAD_UNCHANGED:讀入一幅圖片,并包括其alpha通道。

默認為cv2.IMREAD_COLOR。

返回值是(height,width,channel)數組,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)方法

參數:圖片的路徑

返回值: <PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=374x288 at 0x13EA15F7808>

需要用img=np.array(img)做轉換,才能看到shape屬性,是(height,width,channel)數組,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()

二者之間的相互轉化

主要用到的函數cv2.cvtColor(p1,p2) 是顏色空間轉換函數,p1是需要轉換的圖片,p2是轉換成何種格式。

本例用到的格式是cv2.COLOR_RGB2BGR和cv2.COLOR_BGR2RGB

代碼:

def PILImageToCV(imagePath):
    # PIL Image轉換成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圖片轉換為PIL image
    img = cv2.imread(imagePath)
    plt.imshow(img)
    img2 = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
    plt.imshow(img2)
    plt.show()

判斷圖像數據是否是OpenCV格式:

isinstance(img, np.ndarray)

看完上述內容,是不是對如何比較和相互轉換PIL.Image.open和cv2.imread有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

章丘市| 吐鲁番市| 图们市| 朝阳区| 博兴县| 辛集市| 象州县| 荣成市| 西乡县| 勃利县| 海阳市| 龙门县| 商南县| 宝丰县| 永春县| 法库县| 商都县| 准格尔旗| 峨山| 民勤县| 沙洋县| 怀仁县| 泾源县| 巴东县| 遵义市| 颍上县| 秦安县| 武邑县| 万源市| 闻喜县| 九江市| 当阳市| 琼结县| 克山县| 金寨县| 高安市| 牡丹江市| 新野县| 醴陵市| 云阳县| 松潘县|