python中cv2.imread()和Image.open()的區(qū)別和聯(lián)系詳解
1. cv2.imread()
cv2.imread()讀出的數(shù)據(jù)格式是numpy,默認(rèn)按照f(shuō)lag=1進(jìn)行讀取。
例:
import cv2
img = cv2.imread("img_path")
print(img.shape, type(img))
# 顯示圖像
cv2.imshow("demo", img)
# 窗口顯示時(shí)間,默認(rèn)0表示無(wú)限
cv2.waitKey()
# 按任意鍵銷(xiāo)毀窗口
cv2.destoryWindows("demo")
>>>輸出
(345,678,3) <class.'numpy.ndarray'>
1.1 cv2.imread參數(shù)說(shuō)明
flags:讀取圖片的方式,可選項(xiàng)
- ① cv2.IMREAD_COLOR(1):默認(rèn)方式,3通道BGR彩色圖像
- ② cv2.IMREAD_GRAYSCALE(0):?jiǎn)瓮ǖ阑叶葓D像
- ③ cv2.IMREAD_UNCHANGED(-1):原樣返回(使用Alpha通道)
- ④ cv2.IMREAD_ANYDEPTH(2):輸入具有相應(yīng)深度時(shí)返回16位/32位圖像,否則轉(zhuǎn)為8位
- ⑤ cv2.IMREAD_ANYCOLOR(4):以任何可能的顏色格式讀取
返回值:讀取的OpenCV圖像,nparray多維數(shù)組
1.2 注意事項(xiàng)
⑴ OpenCV中彩色圖像使用BGR格式,而PIL、PyQt、matplotlib等庫(kù)使用的是RGB格式。
import cv2 # 方法1:BGR 轉(zhuǎn) RGB img = img[:, :, ::-1] # 方法2:BGR 轉(zhuǎn) RGB img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
⑵ cv2.imread()如果無(wú)法從指定文件讀取圖像,并不會(huì)報(bào)錯(cuò),而是返回一個(gè)空矩陣。
⑶ 在python3中不支持圖片的路徑和文件名為中文或者有空格,當(dāng)必須使用中文可以用cv2.imdecode()處理。
例:
import cv2 imgFile = './images/測(cè)試.jpg' # cv2.imread(imgFile) 讀取失敗但不會(huì)報(bào)錯(cuò) img = cv2.imdecode(np.fromfile(imgFile, dtype=np.uint8), -1)
⑷ 讀取圖像時(shí)默認(rèn)忽略透明通道,但可以使用CV_LOAD_IMAGE_UNCHANGED參數(shù)讀取透明通道。
2. Image.open()
Image.open()返回值是PIL類(lèi)型格式,可以直接圖片展示,但不能直接讀取其中的像素點(diǎn)值。
例:
from PIL import Image
img = Image.open('./image9.jpg')
print(img, img.size)
img.show()
>>>輸出
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=1920x1080 at 0x222AD1D4160> (1920, 1080)
3. cv2.imread()與Image.open()相互轉(zhuǎn)化
3.1 cv2.imread()轉(zhuǎn)成Image.open():Image.fromarray()
import cv2
from PIL import Image
img_cv2 = cv2.imread('img_path')
# 方法1
img_cv2 = img_cv2[:, :, ::-1]
# 方法2
img_cv2 = cv2.cvtColor(img_cv2, cv2.COLOR_BGR2RGB)
img_PIL = Image.fromarray(img_cv2)
3.2 Image.open()轉(zhuǎn)成cv2.imread():np.array()
例:
import cv2
from PIL import Image
import numpy as np
img_PIL = Image.open('img_path')
img_cv2 = np.array(img_PIL)
# 方法1
img_cv2 = img_cv2[:, :, ::-1]
# 方法2
img_cv2 = cv2.cvtColor(img_cv2, cv2.COLOR_RGB2BGR)
總結(jié):cv2.imread()讀出的數(shù)據(jù)格式是numpy,Image.open()返回值是PIL類(lèi)型格式。
總結(jié)
到此這篇關(guān)于python中cv2.imread()和Image.open()的區(qū)別和聯(lián)系詳解的文章就介紹到這了,更多相關(guān)python cv2.imread()和Image.open()詳解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
穩(wěn)扎穩(wěn)打?qū)WPython之容器 可迭代對(duì)象 迭代器 生成器專(zhuān)題講解
在剛開(kāi)始學(xué)Python的時(shí)候,是不是經(jīng)常會(huì)聽(tīng)到大佬們?cè)谥v容器、可迭代對(duì)象、迭代器、生成器、列表/集合/字典推導(dǎo)式等等眾多概念,其實(shí)這不是大佬們沒(méi)事就擱那扯專(zhuān)業(yè)術(shù)語(yǔ)來(lái)裝B,而是這些東西都得要明白的,光知道字符串、列表等基礎(chǔ)還是不夠的,尤其是在Python的數(shù)據(jù)結(jié)構(gòu)方面2021-10-10
TensorFlow實(shí)現(xiàn)創(chuàng)建分類(lèi)器
這篇文章主要為大家詳細(xì)介紹了TensorFlow實(shí)現(xiàn)創(chuàng)建分類(lèi)器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02
一文講解如何查看python腳本所依賴(lài)三方包及其版本
Python因?yàn)榫哂谐嗟牡谌綆?kù)而被大家喜歡,下面這篇文章主要給大家介紹了關(guān)于如何查看python腳本所依賴(lài)三方包及其版本的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03
使用Python Flask實(shí)現(xiàn)簡(jiǎn)易文件上傳功能
在平時(shí)工作中,文件上傳是一項(xiàng)常見(jiàn)的需求,例如將應(yīng)用異常時(shí)通過(guò)腳本生成的dump文件收集起來(lái)進(jìn)行分析,但實(shí)現(xiàn)起來(lái)卻可能相當(dāng)復(fù)雜,在本文中,我們將探討如何使用Flask實(shí)現(xiàn)文件上傳功能,編寫(xiě)Dockerfile將應(yīng)用程序通過(guò)docker部署,需要的朋友可以參考下2024-05-05
python爬蟲(chóng)爬取筆趣網(wǎng)小說(shuō)網(wǎng)站過(guò)程圖解
這篇文章主要介紹了python爬蟲(chóng)爬取筆趣網(wǎng)小說(shuō)網(wǎng)站過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
Python中的time模塊與datetime模塊用法總結(jié)
Python中內(nèi)置的各項(xiàng)時(shí)間日期函數(shù)幾乎都來(lái)自于time和datetime這兩個(gè)模塊,下面整理了Python中的time模塊與datetime模塊用法總結(jié),需要的朋友可以參考下2016-06-06
Python configparser模塊封裝及構(gòu)造配置文件
這篇文章主要介紹了Python configparser模塊封裝及構(gòu)造配置文件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
基于Pytorch深度學(xué)習(xí)的衛(wèi)星圖像分類(lèi)(Kaggle比賽項(xiàng)目實(shí)戰(zhàn))
本文介紹了在PyTorch框架下實(shí)現(xiàn)Kaggle衛(wèi)星圖像分類(lèi)任務(wù)的完整流程,使用ResNet34模型對(duì)云層、沙漠、綠洲和水域四類(lèi)衛(wèi)星圖像進(jìn)行分類(lèi),準(zhǔn)確率達(dá)96.53%,詳細(xì)說(shuō)明了數(shù)據(jù)預(yù)處理(包括圖像增強(qiáng)技術(shù))、模型構(gòu)建與訓(xùn)練過(guò)程(20個(gè)epoch),并提供了測(cè)試腳本和可視化結(jié)果2025-10-10

