最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中opencv與PIL圖片讀取保存及相互轉化方式

 更新時間:2023年09月08日 09:00:12   作者:木南成長之路  
這篇文章主要介紹了python中opencv與PIL圖片讀取保存及相互轉化方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

opencv與PIL圖片讀取保存及相互轉化

1. opencv讀取顯示圖片

import cv2
img = cv2.imread('img.jpg')
cv2.imshow('img', img)  # 圖片顯示
cv2.waitKey()  # 括號內的輸入控制imshow的持續(xù)時間

其中waitKey()表示等待用戶按鍵,若不加這句,則圖片顯示一閃而過。

cv2讀取的圖片即img為numpy.ndarray,大小即為(w,h,c)。

2. PIL讀取顯示圖片

from PIL import Image
image = Image.open("img.jpg")
image.show()

不需要waitKey(),圖片會持續(xù)顯示。

image為PIL格式。

3. opencv與PIL相互轉換

  • PIL轉opencv
import cv2
from PIL import Image
import numpy
image = Image.open("img.jpg")  # PIL讀取
img = cv2.cvtColor(numpy.asarray(image), cv2.COLOR_RGB2BGR)  # 轉換代碼
cv2.imshow('img', img)  # opencv顯示
cv2.waitKey()

先將PIL格式轉化為numpy.ndarray,再轉換成BGR通過opencv顯示,opencv用的都是BGR格式。

  • opencv轉PIL
import cv2
from PIL import Image
img = cv2.imread('img.jpg')  # opencv讀取
image = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))  # 轉換代碼
image.show()  # PIL顯示

先將numpy由BGR轉成RGB,再轉成PIL格式顯示

4. 保存圖片

  • opencv保存–imwrite()
import cv2
img = cv2.imread('img.jpg')
cv2.imwrite('XXX.jpg', img)  # 保存為XXX.jpg
  • PIL保存–save()
from PIL import Image
image = Image.open("img.jpg")
image.save('XXX.jpg')  # 保存為XXX.jpg

PIL圖片與OpenCV圖片的相互轉換

PIL圖片與 OpenCV圖片的相互轉換是通過數(shù)組格式轉換的。

通過 type() 函數(shù),我們可以觀察到通過 cv2.imread()函數(shù)得到的圖片格式為 numpy.ndarray;

通過 Image.open()函數(shù)得到的圖片格式為 PIL.JpegImagePlugin.JpegImageFile,而在 Image中存在通過數(shù)組格式加載圖像的方法 Image.fromarray。

因此,以數(shù)組格式作為中間者可實現(xiàn) PIL圖片與 OpenCV圖片之間的相互轉換,

代碼如下:

import cv2
import numpy as np
from PIL import Image
def load_img_by_cv(file):
    return cv2.imread(file)
def load_img_by_PIL(file):
    return Image.open(file)
def cv2PIL(img_cv):
    return Image.fromarray(cv2.cvtColor(img_cv,cv2.COLOR_BGR2RGB))
def PIL2cv(img_pil):
    return cv2.cvtColor(np.asarray(img_pil),cv2.COLOR_RGB2BGR)

注意通過 cv2 加載的圖片,默認色道格式為 BGR ,可通過 cv2.cvtColor 函數(shù)進行轉換;通過 PIL 加載的圖片,默認色道格式為 RGB ,可通過圖像的 convert 方法進行轉換。

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • PyQt教程之自定義組件Switch?Button的實現(xiàn)

    PyQt教程之自定義組件Switch?Button的實現(xiàn)

    這篇文章主要為大家詳細介紹了PyQt中如何實現(xiàn)自定義組件Switch?Button,文中的示例代碼簡潔易懂,具有一定的學習價值,感興趣的可以了解一下
    2023-05-05
  • python Tensor和Array對比分析

    python Tensor和Array對比分析

    今天小編就為大家分享一篇python Tensor和Array對比分析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python類繼承用法實例分析

    python類繼承用法實例分析

    這篇文章主要介紹了python類繼承用法,實例分析了Python類的定義與類繼承的實現(xiàn)技巧,需要的朋友可以參考下
    2015-05-05
  • sklearn的predict_proba使用說明

    sklearn的predict_proba使用說明

    這篇文章主要介紹了sklearn的predict_proba使用說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • 使用Python手搓一個生產(chǎn)級限流器

    使用Python手搓一個生產(chǎn)級限流器

    這篇文章主要為大家詳細介紹了三種生產(chǎn)級限流算法的Python實現(xiàn),即令牌桶,漏桶和滑動窗口,文中的示例代碼講解詳細,感興趣的小伙伴可以了解下
    2026-02-02
  • Python實現(xiàn)在圖像中隱藏二維碼的方法詳解

    Python實現(xiàn)在圖像中隱藏二維碼的方法詳解

    隱寫是一種類似于加密卻又不同于加密的技術。這篇文章主要介紹了如何利用Python語言實現(xiàn)在圖像中隱藏二維碼功能,感興趣的可以了解一下
    2022-09-09
  • Python的pygame安裝教程詳解

    Python的pygame安裝教程詳解

    Pygame是跨平臺Pyth,Pygame 作者是 Pete Shinners, 協(xié)議為 GNU Lesser General Public License。這篇文章主要介紹了Python的pygame安裝教程,需要的朋友可以參考下
    2020-02-02
  • python-jwt用戶認證食用教學的實現(xiàn)方法

    python-jwt用戶認證食用教學的實現(xiàn)方法

    這篇文章主要介紹了python-jwt用戶認證食用教學的實現(xiàn)方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Python中計數(shù)器Counter的使用技巧分享

    Python中計數(shù)器Counter的使用技巧分享

    計數(shù)器(Counter)是Python標準庫collections模塊中提供的一個強大工具,用于統(tǒng)計可哈希對象的出現(xiàn)次數(shù),本文將介紹Python中計數(shù)器的基本用法、高級功能等內容,希望對大家有所幫助
    2023-11-11
  • Python工程實踐之np.loadtxt()讀取數(shù)據(jù)

    Python工程實踐之np.loadtxt()讀取數(shù)據(jù)

    為了方便使用和記憶,有時候我們會把numpy.loadtxt()縮寫成np.loadtxt(),這篇文章主要給大家介紹了關于Python工程實踐之np.loadtxt()讀取數(shù)據(jù)的相關資料,需要的朋友可以參考下
    2023-07-07

最新評論

舞钢市| 峡江县| 慈利县| 江永县| 中卫市| 韩城市| 辰溪县| 青神县| 石林| 轮台县| 祁东县| 梅州市| 贺州市| 萍乡市| 滨州市| 开封市| 吕梁市| 大竹县| 平舆县| 鹤山市| 东海县| 九龙县| 永兴县| 商城县| 秀山| 白河县| 黄梅县| 昌江| 商南县| 泽州县| 商城县| 多伦县| 庆城县| 北宁市| 陆良县| 虞城县| 南岸区| 新民市| 永平县| 隆尧县| 兴宁市|