<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何實現PIL和OpenCV之間圖像數據的轉換呢?

jf_Ufm3lVrj ? 來源:凌順實驗室 ? 2024-02-25 13:43 ? 次閱讀

本文介紹如何仔PIL和OpenCV之間圖像數據的轉換,因為有時候在圖片處理速度上PIL會更勝一籌,現在這個轉換方法寫成一個函數,以便它轉換具有灰度或 alpha 通道的圖像。

PIL圖像數據格式轉換成OpenCV圖像數據格式

1,使用cv2轉換色彩的方法

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轉換色彩的方法

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圖像數據格式轉換成PIL圖像數據格式

1,使用cv2轉換色彩的方法

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轉換色彩的方法

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




審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 圖像數據
    +關注

    關注

    0

    文章

    47

    瀏覽量

    11184
  • OpenCV
    +關注

    關注

    29

    文章

    612

    瀏覽量

    40823
  • PIL
    PIL
    +關注

    關注

    0

    文章

    18

    瀏覽量

    8519

原文標題:PIL圖像和OpenCV圖像數據格式互相轉換

文章出處:【微信號:凌順實驗室,微信公眾號:凌順實驗室】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    opencv跟labview圖像格式的轉換

    opencv跟labview圖像格式的轉換,有大神會嗎,教我?
    發表于 08-13 21:07

    OpenCV圖像

    之前學過一段時間OpenCV,跟著網上的資料,自己瞎搞了個上位機,可以對攝像頭采集的圖像簡單處理,在此獻丑了,hhhhhh
    發表于 07-11 19:07

    Vivado HLS實現OpenCV圖像處理的設計流程與分析

    ::Mat《》類型的轉換。2、使用VivadoHLS實現OpenCV到RTL代碼轉換的流程2.1 OpenCV設計中的權衡
    發表于 07-08 08:30

    如何去實現一種基于opencv與flask的攝像頭圖像傳輸

    硬件:eaidk610(fedaro28)、普通帶usb接口攝像頭軟件環境: python3.9、opencv4.6、Flask2.2主要實現了從板子的連接的攝像頭收集圖像并在網頁中展示,板子上沒有
    發表于 10-18 14:25

    如何使用Python中的OpenCV模塊檢測顏色

    numpy然后,導入模塊。讀取圖像并使用 OpenCV 模塊中的 cvtColor() 函數將BGR圖像轉換為 HSV (色調、飽和度、值) 圖像
    發表于 02-09 16:31

    【EASY EAI Nano開源套件試用體驗】3. OpenCV 圖像處理開發測試

    RkMedia SDK和OpenCV對接,完成opencv中的圖像采集輸入與輸出顯示。 方法就是把OPenCV的Mat圖像矩陣中的
    發表于 03-08 00:03

    i.MX8m plus如何在ICC配置文件之間進行轉換?

    我知道 NXP OpenCV fork 集成了 eIQ,用于 i.MX8m plus 上的硬件加速神經圖像處理。 但是,非機器學習圖像處理又如何,例如在 ICC 配置文件
    發表于 05-31 06:02

    使用opencv進行圖像處理

    使用opencv進行圖像處理_于仕琪,感興趣的可以看看。
    發表于 05-03 14:45 ?0次下載

    opencv中三種常見數據容器:Mat,cvMat和IplImage及它們編程顯示圖像的差異

    IplImage, CvMat, Mat 的關系opencv中常見的與圖像操作有關的數據容器有Mat,cvMat和IplImage,這三種類型都可以代表和顯示圖像,但是,Mat類型側重
    發表于 11-25 13:18 ?6435次閱讀

    OpenCV中的圖像的計算

    今天我們一起學習的是OpenCV中的圖像的計算,在圖像計算中,分為像素級運算和代數運算這兩大類,今天我們借助OpenCV中的函數一起來看看這些運算。 一:
    的頭像 發表于 11-03 17:45 ?1932次閱讀

    OpenCV實現圖像形態學什么常見操作?

    圖像形態學是圖像處理的分支學科,在二值圖像處理中占有重要地位、OpenCV實現圖像形態學如下
    的頭像 發表于 05-27 14:11 ?1302次閱讀
    <b class='flag-5'>OpenCV</b>中<b class='flag-5'>實現</b>了<b class='flag-5'>圖像</b>形態學什么常見操作?

    PIL的使用以及劃分圖像的皮膚區域

    本項目將使用python3去識別圖片是否為色情圖片,會使用到PIL這個圖像處理庫,并且編寫算法來劃分圖像的皮膚區域
    的頭像 發表于 07-15 10:03 ?1238次閱讀

    手把手教你使用LabVIEW OpenCV dnn實現圖像分類(含源碼)

    使用LabVIEW OpenCV dnn實現圖像分類
    的頭像 發表于 03-09 13:37 ?766次閱讀

    PiL測試實戰(下)| PiL階段的閉環測試

    作者:酷兔本兔小編:吃不飽上篇我們介紹了單元級軟件的PiL測試,對于集成級的PiL測試,其流程和單元階段基本一致。然而,對于一些帶有反饋控制邏輯的集成測試(如電機控制器MCU),PiL階段會將控制
    的頭像 發表于 12-15 10:31 ?497次閱讀
    <b class='flag-5'>PiL</b>測試實戰(下)| <b class='flag-5'>PiL</b>階段的閉環測試

    如何安裝Python圖像處理PIL

    安裝PIL庫 要使用PIL庫,我們首先需要安裝它。有兩種方法可以安裝PIL庫: 方法一:使用pip命令,在終端或命令行中輸入以下代碼: pip install Pillow 方法二:從官網下
    的頭像 發表于 09-12 17:15 ?1389次閱讀
    如何安裝Python<b class='flag-5'>圖像</b>處理<b class='flag-5'>PIL</b>庫
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>