日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

skimage.io.imread(), Image.open() 以及 cv2.imread()的区别

發布時間:2024/4/18 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 skimage.io.imread(), Image.open() 以及 cv2.imread()的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們在進行數據處理的時候,經常會遇到這樣的問題,我應該用什么來打開我的圖片呢?接下來我們就來介紹一下常見的兩種打開圖片的方法,以及區別

1.? img = Image.open(path),這是PIL中的一個處理圖片的函數,使用時需 from PIL import Image

  • 首先img的type,這里的img的類型是Image對象,不是普通的數組。
  • 其次,圖像通道,我們都知道,一般圖像由三通道構成分別是R、G、B。這里的img通道順序即為RGB,因此在顯示時往往會呈現不同的效果,如果圖像為RGBA格式(這里的A表示透明度),則使用Image方法讀入的是4通道的數據,cv2.imread不具備這種能力。

2. img = cv2.imread(path),這是opencv中的處理圖片的函數,使用時需 import cv2

  • 首先img的type,這里的img的type是np.adarray()類型
  • 其次,圖像通道,這里的圖像通道順序為BGR

2. img = skimage.io.imread(path),這是skimage包中的讀入圖片的函數,使用時需 import skimage

  • 首先img的type,這里的img的type也是np.adarray()類型
  • 其次,圖像通道,這里的圖像通道順序為RGB,如果圖像是RGBA格式的話,讀入的也是一個4通道的數據

圖像顯示的時候有兩種方式,plt.imshow(array) 和 cv2.imshow(array)。兩個函數都要求輸入為數組。因此Image讀入的圖片要轉換為數組。plt函數讀入的順序為RGB,cv2.imshow()讀入的順序為BGR。因此Image與plt.imshow()配合使用。cv2自己的一套使用,skimage讀入的數據在顯示時兩種方法都可以使用,但是使用cv2.imshow時要將前兩個通道進行調換

轉換:

1.Image對象->np.adarray

img = Image.open(path)

img_array = np.array(img)

2.np.adarray->Image對象

img = cv2.imread(path)

img_Image = Image.fromarray(np.uint8(img))

總結

以上是生活随笔為你收集整理的skimage.io.imread(), Image.open() 以及 cv2.imread()的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。