欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

你不能不知道的八種 Python 圖像庫的圖片讀取方法總結

系統 1863 0

目錄

      • 一、前言
      • 二、opencv——cv2.imread
      • 三、PIL——PIL.Image.open
      • 四、matplotlib——matplotlib.image.imread
      • 五、scipy.misc——scipy.misc.imread
      • 六、skimage——skimage.io.imread
      • 七、Tensorflow——tf.image.decode
      • 八、總結
      • #、參考文章

一、前言

在研究深度學習計算機視覺的時候,經常需要進行圖像讀取,但是各種第三方庫的方法又不一樣,用的時候又有點萌萌的,不知道有什么區別,比較常用的就是 OpenCV PIL Image ,但是在格式上也總是有各種各樣的問題,所以這一次就好好總結主流Python圖像庫的一些基本使用方法和需要注意的地方。

1. Opencv
2. PIL(pillow)
3. matplotlib.image
4. scipy.misc
5. skimage
6. Tensorflow

二、opencv——cv2.imread

OpenCV作為最常用的圖像處理庫,實現了圖像處理和計算機視覺方面的很多通用算法,可以說是很全面和強大了。如果你只想掌握一個圖像庫的話,OpenCV是你的最佳選擇。

注意

  • OpenCV 讀進來的圖片已經是一個 numpy 矩陣了,彩色圖片維度是高度、寬度、通道數(height,width,channels),數據類型是 uint8 。
  • OpenCV 讀進來的圖片的通道排列是 BGR ,而不是主流的 RGB ,需要轉換才能變成 RGB 。
  • OpenCV 讀取灰度圖的時候,可以直接參數讀取灰度圖;或者先讀入彩色圖,再轉灰度圖。
            
              
                import
              
               cv2

              
                import
              
               matplotlib
              
                .
              
              pyplot 
              
                as
              
               plt


              
                # 讀入圖片:默認彩色圖,cv2.IMREAD_GRAYSCALE灰度圖,cv2.IMREAD_UNCHANGED包含alpha通道
              
              
img 
              
                =
              
               cv2
              
                .
              
              imread
              
                (
              
              
                '2.jpg'
              
              
                )
              
              
gray 
              
                =
              
               cv2
              
                .
              
              cvtColor
              
                (
              
              img
              
                ,
              
               cv2
              
                .
              
              COLOR_BGR2GRAY
              
                )
              
              
                # 轉換為灰度圖
              
              
img_rgb 
              
                =
              
               cv2
              
                .
              
              cvtColor
              
                (
              
              img
              
                ,
              
               cv2
              
                .
              
              COLOR_BGR2RGB
              
                )
              
              
                # 轉換為RGB
              
              
                # plt顯示圖像
              
              
plt
              
                .
              
              subplot
              
                (
              
              
                131
              
              
                )
              
              
plt
              
                .
              
              imshow
              
                (
              
              img
              
                )
              
              
plt
              
                .
              
              title
              
                (
              
              
                'img'
              
              
                )
              
              
plt
              
                .
              
              axis
              
                (
              
              
                'off'
              
              
                )
              
              

plt
              
                .
              
              subplot
              
                (
              
              
                132
              
              
                )
              
              
plt
              
                .
              
              imshow
              
                (
              
              gray
              
                )
              
              
plt
              
                .
              
              title
              
                (
              
              
                'gray'
              
              
                )
              
              
plt
              
                .
              
              axis
              
                (
              
              
                'off'
              
              
                )
              
              

plt
              
                .
              
              subplot
              
                (
              
              
                133
              
              
                )
              
              
plt
              
                .
              
              imshow
              
                (
              
              img_rgb
              
                )
              
              
plt
              
                .
              
              title
              
                (
              
              
                'img_rgb'
              
              
                )
              
              
plt
              
                .
              
              axis
              
                (
              
              
                'off'
              
              
                )
              
              
plt
              
                .
              
              show
              
                (
              
              
                )
              
              
                # cv2顯示圖像
              
              
cv2
              
                .
              
              imshow
              
                (
              
              
                'src'
              
              
                ,
              
               img
              
                )
              
              
cv2
              
                .
              
              imshow
              
                (
              
              
                'gray'
              
              
                ,
              
               gray
              
                )
              
              
cv2
              
                .
              
              imshow
              
                (
              
              
                'RGB'
              
              
                ,
              
               img_rgb
              
                )
              
              
                print
              
              
                (
              
              img
              
                .
              
              shape
              
                )
              
              
                # (h,w,c)
              
              
                print
              
              
                (
              
              img
              
                .
              
              size
              
                )
              
              
                # 像素總數目
              
              
                print
              
              
                (
              
              img
              
                .
              
              dtype
              
                )
              
              
                # 像素類型
              
              
                print
              
              
                (
              
              gray
              
                .
              
              shape
              
                )
              
              
                print
              
              
                (
              
              gray
              
                .
              
              size
              
                )
              
              
                print
              
              
                (
              
              gray
              
                .
              
              dtype
              
                )
              
              

cv2
              
                .
              
              imwrite
              
                (
              
              
                'test.jpg'
              
              
                ,
              
               img_rgb
              
                )
              
              
                # 保存圖像
              
              
cv2
              
                .
              
              waitKey
              
                (
              
              
                )
              
              
                # 一直顯示
              
              
                # (336, 500, 3)
              
              
                # 504000
              
              
                # uint8
              
              
                # (336, 500)
              
              
                # 168000
              
              
                # uint8
              
            
          

plt 顯示圖像:
你不能不知道的八種 Python 圖像庫的圖片讀取方法總結_第1張圖片
cv2 顯示圖像:

細心的同學發現一個問題, plt cv2 顯示圖像顏色恰好是相反的,這是一個接口的問題,因為 plt 是RGB接口的,但是 cv2 是BGR接口的,所以 plt 顯示的是正確的顏色,也就是‘BGR’、灰度圖、‘RGB’,但是 cv2 顯示就是相反的顏色。

除此之外,OpenCV 對于讀進來的圖片的通道排列是 BGR ,而不是主流的 RGB ,這也是它最被人詬病的地方,容易出錯,千萬要注意。

            
              
                # opencv讀入的矩陣是BGR,轉為RGB
              
              
                # img_cv2(BGR) --> img_rgb(RGB)
              
              
img_cv2 
              
                =
              
               cv2
              
                .
              
              imread
              
                (
              
              
                '1.jpg'
              
              
                )
              
              
img_rgb 
              
                =
              
               cv2
              
                .
              
              cvtColor
              
                (
              
              img_cv2
              
                ,
              
               cv2
              
                .
              
              COLOR_BGR2RGB
              
                )
              
            
          

OpenCV 讀取灰度圖的時候,可以直接參數讀取灰度圖;或者先讀入彩色圖,再轉灰度圖。

            
              
                import
              
               cv2


              
                # 直接參數讀取灰度圖
              
              
gray1 
              
                =
              
               cv2
              
                .
              
              imread
              
                (
              
              
                '1.jpg'
              
              
                ,
              
               cv2
              
                .
              
              IMREAD_GRAYSCALE
              
                )
              
              
                # 灰度圖
              
              
cv2
              
                .
              
              imshow
              
                (
              
              
                'gray1'
              
              
                ,
              
               gray1
              
                )
              
              
                # 也可以這么寫,先讀入彩色圖,再轉灰度圖
              
              
src 
              
                =
              
               cv2
              
                .
              
              imread
              
                (
              
              
                '1.jpg'
              
              
                )
              
              
gray2 
              
                =
              
               cv2
              
                .
              
              cvtColor
              
                (
              
              src
              
                ,
              
               cv2
              
                .
              
              COLOR_BGR2GRAY
              
                )
              
              
cv2
              
                .
              
              imshow
              
                (
              
              
                'gray2'
              
              
                ,
              
               gray2
              
                )
              
              

cv2
              
                .
              
              waitKey
              
                (
              
              
                )
              
            
          

在這里插入圖片描述

兩種讀取灰度圖方法的結果是完全相同的。

正常情況下,我們的圖片是0-255的,但是有時候我們需要歸一化處理為0~1。

            
              
                # opencv讀入的圖片矩陣數值是0到255
              
              
                import
              
               cv2

img_norm 
              
                =
              
               cv2
              
                .
              
              imread
              
                (
              
              
                '1.jpg'
              
              
                )
              
              
img_norm 
              
                =
              
               img_norm
              
                .
              
              astype
              
                (
              
              
                "float"
              
              
                )
              
              
                /
              
              
                255.0
              
              
                # 注意需要先轉化數據類型為float
              
              
                print
              
              
                (
              
              img_norm
              
                .
              
              dtype
              
                )
              
              
                print
              
              
                (
              
              img_norm
              
                )
              
              
cv2
              
                .
              
              imshow
              
                (
              
              
                'img_norm'
              
              
                ,
              
               img_norm
              
                )
              
              
cv2
              
                .
              
              waitKey
              
                (
              
              
                )
              
              
                # float64
              
              
                [
              
              
                [
              
              
                [
              
              
                0.88235294
              
              
                0.89019608
              
              
                0.86666667
              
              
                ]
              
              
                [
              
              
                0.88235294
              
              
                0.88627451
              
              
                0.87058824
              
              
                ]
              
              
                [
              
              
                0.8745098
              
              
                0.87843137
              
              
                0.8627451
              
              
                ]
              
              
                .
              
              
                .
              
              
                .
              
              
                .
              
              
                .
              
              
                .
              
              
                [
              
              
                0
              
              
                .
              
              
                0.08235294
              
              
                0.10588235
              
              
                ]
              
              
                [
              
              
                0
              
              
                .
              
              
                0.02745098
              
              
                0.04705882
              
              
                ]
              
              
                [
              
              
                0
              
              
                .
              
              
                0.03137255
              
              
                0.04313725
              
              
                ]
              
              
                ]
              
              
                ]
              
            
          

你不能不知道的八種 Python 圖像庫的圖片讀取方法總結_第2張圖片
OpenCV如何進行存儲圖片呢?使用 cv2.imwrite 函數即可。

            
              
                # 存儲圖片
              
              
cv2
              
                .
              
              imwrite
              
                (
              
              
                'test1.jpg'
              
              
                ,
              
              img_norm
              
                )
              
              
                # 得到的是全黑的圖片,因為我們把它歸一化了
              
              
                # 所以要得到可視化的圖,需要先*255還原
              
              
img_test 
              
                =
              
               img_norm 
              
                *
              
              
                255
              
              
cv2
              
                .
              
              imwrite
              
                (
              
              
                'test2.jpg'
              
              
                ,
              
              img_test
              
                )
              
              
                # 這樣就可以看到彩色原圖了
              
            
          

在這里插入圖片描述

三、PIL——PIL.Image.open

PIL 即 Python Imaging Library,也即為我們所稱的 Pillow,已經是 Python 平臺事實上的圖像處理標準庫了。PIL 功能非常強大,但API卻非常簡單易用。它比 OpenCV 更為輕巧,正因如此,它深受大眾的喜愛。

            
              
                from
              
               PIL 
              
                import
              
               Image

              
                import
              
               numpy 
              
                as
              
               np

img 
              
                =
              
               Image
              
                .
              
              
                open
              
              
                (
              
              
                '1.jpg'
              
              
                )
              
              
                print
              
              
                (
              
              img
              
                .
              
              
                format
              
              
                )
              
              
                print
              
              
                (
              
              img
              
                .
              
              size
              
                )
              
              
                # 注意,省略了通道。 (w,h)
              
              
                print
              
              
                (
              
              img
              
                .
              
              mode
              
                )
              
              
                # L為灰度圖,RGB為真彩色,RGBA為加了透明通道
              
              
img
              
                .
              
              show
              
                (
              
              
                )
              
              
                # 顯示圖片
              
              
gray 
              
                =
              
               img
              
                .
              
              convert
              
                (
              
              
                'L'
              
              
                )
              
              
                # 轉化為灰度圖
              
              
                print
              
              
                (
              
              gray
              
                .
              
              mode
              
                )
              
              
                # L為灰度圖,RGB為真彩色,RGBA為加了透明通道
              
              
gray
              
                .
              
              show
              
                (
              
              
                )
              
              
                # pillow讀進來的圖片不是矩陣,我們將圖片轉矩陣
              
              
arr 
              
                =
              
               np
              
                .
              
              array
              
                (
              
              img
              
                )
              
              
                print
              
              
                (
              
              arr
              
                .
              
              shape
              
                )
              
              
                print
              
              
                (
              
              arr
              
                .
              
              dtype
              
                )
              
              
                print
              
              
                (
              
              arr
              
                )
              
              
                # 灰度圖的轉化與彩圖轉化一樣
              
              
arr_gray 
              
                =
              
               np
              
                .
              
              array
              
                (
              
              gray
              
                )
              
              
                print
              
              
                (
              
              arr_gray
              
                .
              
              shape
              
                )
              
              
                print
              
              
                (
              
              arr_gray
              
                .
              
              dtype
              
                )
              
              
                print
              
              
                (
              
              arr_gray
              
                )
              
              
                # 矩陣再轉為圖像,進行存儲
              
              
new_im 
              
                =
              
               Image
              
                .
              
              fromarray
              
                (
              
              arr
              
                )
              
              
new_im
              
                .
              
              save
              
                (
              
              
                'test.png'
              
              
                )
              
              
                # JPEG
              
              
                # (500, 336)
              
              
                # RGB
              
              
                # L
              
              
                # (336, 500, 3)
              
              
                # uint8
              
              
                [
              
              
                [
              
              
                [
              
              
                221
              
              
                227
              
              
                225
              
              
                ]
              
              
                [
              
              
                222
              
              
                226
              
              
                225
              
              
                ]
              
              
                [
              
              
                220
              
              
                224
              
              
                223
              
              
                ]
              
              
                .
              
              
                .
              
              
                .
              
              
                .
              
              
                .
              
              
                .
              
              
                [
              
              
                27
              
              
                21
              
              
                0
              
              
                ]
              
              
                [
              
              
                12
              
              
                7
              
              
                0
              
              
                ]
              
              
                [
              
              
                11
              
              
                8
              
              
                0
              
              
                ]
              
              
                ]
              
              
                ]
              
              
                # (336, 500)
              
              
                # uint8
              
              
                [
              
              
                [
              
              
                224
              
              
                224
              
              
                222
              
              
                .
              
              
                .
              
              
                .
              
              
                223
              
              
                223
              
              
                223
              
              
                ]
              
              
                [
              
              
                226
              
              
                225
              
              
                224
              
              
                .
              
              
                .
              
              
                .
              
              
                222
              
              
                222
              
              
                222
              
              
                ]
              
              
                [
              
              
                225
              
              
                225
              
              
                225
              
              
                .
              
              
                .
              
              
                .
              
              
                222
              
              
                222
              
              
                222
              
              
                ]
              
              
                .
              
              
                .
              
              
                .
              
              
                [
              
              
                240
              
              
                242
              
              
                245
              
              
                .
              
              
                .
              
              
                .
              
              
                1
              
              
                1
              
              
                5
              
              
                ]
              
              
                [
              
              
                242
              
              
                239
              
              
                242
              
              
                .
              
              
                .
              
              
                .
              
              
                10
              
              
                2
              
              
                5
              
              
                ]
              
              
                [
              
              
                236
              
              
                229
              
              
                232
              
              
                .
              
              
                .
              
              
                .
              
              
                20
              
              
                7
              
              
                7
              
              
                ]
              
              
                ]
              
            
          

在這里插入圖片描述
在這里插入圖片描述
你不能不知道的八種 Python 圖像庫的圖片讀取方法總結_第3張圖片

四、matplotlib——matplotlib.image.imread

Matplotlib 是 Python 的 2D 繪圖庫,它以各種硬拷貝格式和跨平臺的交互式環境生成出版質量級別的圖形。 它可與 NumPy 一起使用,提供了一種有效的 MatLab 開源替代方案。

            
              
                import
              
               matplotlib
              
                .
              
              pyplot 
              
                as
              
               plt

image 
              
                =
              
               plt
              
                .
              
              imread
              
                (
              
              
                '1.jpg'
              
              
                )
              
              
plt
              
                .
              
              imshow
              
                (
              
              image
              
                )
              
              
plt
              
                .
              
              show
              
                (
              
              
                )
              
              

image2 
              
                =
              
               plt
              
                .
              
              imread
              
                (
              
              
                '1.jpg'
              
              
                )
              
              
plt
              
                .
              
              imshow
              
                (
              
              image2
              
                )
              
              
plt
              
                .
              
              axis
              
                (
              
              
                'off'
              
              
                )
              
              
                # 也可以關閉顯示x,y軸上的數字
              
              
plt
              
                .
              
              show
              
                (
              
              
                )
              
              
                # plt.imread讀入的就是一個矩陣,跟opencv一樣,但彩圖讀進的是RGB,與opencv有區別
              
              
                print
              
              
                (
              
              image
              
                .
              
              shape
              
                )
              
              
                # (h,w,c)
              
              
                print
              
              
                (
              
              image
              
                .
              
              size
              
                )
              
              
                print
              
              
                (
              
              image
              
                .
              
              dtype
              
                )
              
              
                print
              
              
                (
              
              image
              
                )
              
              
                # (336, 500, 3)
              
              
                # 504000
              
              
                # uint8
              
              
                [
              
              
                [
              
              
                [
              
              
                221
              
              
                227
              
              
                225
              
              
                ]
              
              
                [
              
              
                222
              
              
                226
              
              
                225
              
              
                ]
              
              
                [
              
              
                220
              
              
                224
              
              
                223
              
              
                ]
              
              
                .
              
              
                .
              
              
                .
              
              
                .
              
              
                .
              
              
                .
              
              
                [
              
              
                27
              
              
                21
              
              
                0
              
              
                ]
              
              
                [
              
              
                12
              
              
                7
              
              
                0
              
              
                ]
              
              
                [
              
              
                11
              
              
                8
              
              
                0
              
              
                ]
              
              
                ]
              
              
                ]
              
            
          

在這里插入圖片描述
在這里插入圖片描述

            
              
                import
              
               matplotlib
              
                .
              
              pyplot 
              
                as
              
               plt

image 
              
                =
              
               plt
              
                .
              
              imread
              
                (
              
              
                '1.jpg'
              
              
                )
              
              
im_r 
              
                =
              
               image
              
                [
              
              
                :
              
              
                ,
              
              
                :
              
              
                ,
              
              
                0
              
              
                ]
              
              
                # 紅色通道
              
              
plt
              
                .
              
              imshow
              
                (
              
              im_r
              
                )
              
              
plt
              
                .
              
              show
              
                (
              
              
                )
              
              
                # 此時會發現顯示的是熱量圖,不是我們預想的灰度圖,可以添加 cmap 參數解決
              
              
plt
              
                .
              
              imshow
              
                (
              
              im_r
              
                ,
              
               cmap
              
                =
              
              
                'Greys_r'
              
              
                )
              
              
plt
              
                .
              
              show
              
                (
              
              
                )
              
            
          

在這里插入圖片描述
在這里插入圖片描述

            
              
                # 與opencv結合使用
              
              
                import
              
               cv2

              
                import
              
               matplotlib
              
                .
              
              pyplot 
              
                as
              
               plt

image2 
              
                =
              
               cv2
              
                .
              
              imread
              
                (
              
              
                '1.jpg'
              
              
                )
              
              
plt
              
                .
              
              imshow
              
                (
              
              image2
              
                )
              
              
plt
              
                .
              
              axis
              
                (
              
              
                'off'
              
              
                )
              
              
plt
              
                .
              
              show
              
                (
              
              
                )
              
              
                # 發現圖像顏色怪怪的,原因是我們前面提到的cv2讀取圖片時的RGB順序不同的原因,轉換一下就可以了
              
              

image2 
              
                =
              
               cv2
              
                .
              
              cvtColor
              
                (
              
              image2
              
                ,
              
               cv2
              
                .
              
              COLOR_BGR2RGB
              
                )
              
              
plt
              
                .
              
              imshow
              
                (
              
              image2
              
                )
              
              
plt
              
                .
              
              axis
              
                (
              
              
                'off'
              
              
                )
              
              
plt
              
                .
              
              show
              
                (
              
              
                )
              
              
                # 所以無論用什么庫讀進圖片,只要把圖片改為矩陣,那么matplotlib就可以處理了
              
            
          

在這里插入圖片描述
在這里插入圖片描述

            
              
                # pillow和matplotlib結合
              
              
                from
              
               PIL 
              
                import
              
               Image

              
                import
              
               numpy 
              
                as
              
               np

              
                import
              
               matplotlib
              
                .
              
              pyplot 
              
                as
              
               plt

image3 
              
                =
              
               Image
              
                .
              
              
                open
              
              
                (
              
              
                '1.jpg'
              
              
                )
              
              
image3 
              
                =
              
               np
              
                .
              
              array
              
                (
              
              image3
              
                )
              
              
plt
              
                .
              
              figure
              
                (
              
              
                )
              
              
plt
              
                .
              
              imshow
              
                (
              
              image3
              
                )
              
              
plt
              
                .
              
              axis
              
                (
              
              
                'off'
              
              
                )
              
              
                # 存儲圖像,注意,必須在show之前savefig,否則存儲的圖片一片空白
              
              
plt
              
                .
              
              savefig
              
                (
              
              
                'timo.jpg'
              
              
                )
              
              
plt
              
                .
              
              show
              
                (
              
              
                )
              
            
          

在這里插入圖片描述
你不能不知道的八種 Python 圖像庫的圖片讀取方法總結_第4張圖片
如果先 plt.show ,再 plt.savefig ,保存的圖片就是全白色的。
在這里插入圖片描述
你不能不知道的八種 Python 圖像庫的圖片讀取方法總結_第5張圖片

            
              
                import
              
               matplotlib
              
                .
              
              pyplot 
              
                as
              
               plt

im_1 
              
                =
              
               plt
              
                .
              
              imread
              
                (
              
              
                '1.jpg'
              
              
                )
              
              
im_2 
              
                =
              
               plt
              
                .
              
              imread
              
                (
              
              
                '2.jpg'
              
              
                )
              
              
figure 
              
                =
              
               plt
              
                .
              
              figure
              
                (
              
              figsize
              
                =
              
              
                (
              
              
                10
              
              
                ,
              
              
                5
              
              
                )
              
              
                )
              
              
                # 調整顯示圖片的大小
              
              
                ''' figsize參數:指定繪圖對象的寬度和高度,單位為英寸; dpi參數指定繪圖對象的分辨率,即每英寸多少個像素,缺省值為80。 因此本例中所創建的圖表窗口的寬度為10*80 = 800像素 '''
              
              
plt
              
                .
              
              axis
              
                (
              
              
                "off"
              
              
                )
              
              
                # 不顯示刻度
              
              

ax 
              
                =
              
               figure
              
                .
              
              add_subplot
              
                (
              
              
                121
              
              
                )
              
              
                # 圖片以1行2列的形式顯示
              
              
plt
              
                .
              
              axis
              
                (
              
              
                'off'
              
              
                )
              
              
ax
              
                .
              
              imshow
              
                (
              
              im_1
              
                )
              
              
                # 第一張圖
              
              
ax
              
                .
              
              set_title
              
                (
              
              
                'image 1'
              
              
                )
              
              
                # 給圖片加titile
              
              

ax 
              
                =
              
               figure
              
                .
              
              add_subplot
              
                (
              
              
                122
              
              
                )
              
              
plt
              
                .
              
              axis
              
                (
              
              
                'off'
              
              
                )
              
              
ax
              
                .
              
              imshow
              
                (
              
              im_2
              
                )
              
              
                # 第二張圖
              
              
ax
              
                .
              
              set_title
              
                (
              
              
                'image 2'
              
              
                )
              
              
                # 給圖片加titile
              
              

plt
              
                .
              
              savefig
              
                (
              
              
                'twp.jpg'
              
              
                )
              
              
plt
              
                .
              
              show
              
                (
              
              
                )
              
            
          

在這里插入圖片描述
你不能不知道的八種 Python 圖像庫的圖片讀取方法總結_第6張圖片

五、scipy.misc——scipy.misc.imread

            
              
                from
              
               scipy 
              
                import
              
               misc

              
                import
              
               matplotlib
              
                .
              
              pyplot 
              
                as
              
               plt

im 
              
                =
              
               misc
              
                .
              
              imread
              
                (
              
              
                '1.jpg'
              
              
                )
              
              
                print
              
              
                (
              
              im
              
                .
              
              dtype
              
                )
              
              
                print
              
              
                (
              
              im
              
                .
              
              size
              
                )
              
              
                print
              
              
                (
              
              im
              
                .
              
              shape
              
                )
              
              
                # 存儲圖像,這個不需要先存儲,和前面不一樣
              
              
misc
              
                .
              
              imsave
              
                (
              
              
                'misc1.png'
              
              
                ,
              
               im
              
                )
              
              
plt
              
                .
              
              imshow
              
                (
              
              im
              
                )
              
              
plt
              
                .
              
              show
              
                (
              
              
                )
              
              
                print
              
              
                (
              
              im
              
                )
              
              
                # uint8
              
              
                # 504000
              
              
                # (336, 500, 3)
              
              
                [
              
              
                [
              
              
                [
              
              
                221
              
              
                227
              
              
                225
              
              
                ]
              
              
                [
              
              
                222
              
              
                226
              
              
                225
              
              
                ]
              
              
                [
              
              
                220
              
              
                224
              
              
                223
              
              
                ]
              
              
                .
              
              
                .
              
              
                .
              
              
                .
              
              
                .
              
              
                .
              
              
                [
              
              
                27
              
              
                21
              
              
                0
              
              
                ]
              
              
                [
              
              
                12
              
              
                7
              
              
                0
              
              
                ]
              
              
                [
              
              
                11
              
              
                8
              
              
                0
              
              
                ]
              
              
                ]
              
              
                ]
              
            
          

在這里插入圖片描述

六、skimage——skimage.io.imread

            
              
                from
              
               skimage 
              
                import
              
               io

image 
              
                =
              
               io
              
                .
              
              imread
              
                (
              
              
                '1.jpg'
              
              
                )
              
              
                print
              
              
                (
              
              image
              
                .
              
              shape
              
                )
              
              
                # numpy矩陣,(h,w,c)
              
              
                print
              
              
                (
              
              image
              
                .
              
              dtype
              
                )
              
              
                print
              
              
                (
              
              image
              
                .
              
              size
              
                )
              
              
io
              
                .
              
              imshow
              
                (
              
              image
              
                )
              
              
                # 存儲圖像,這個不需要先存儲,和前面不一樣
              
              
io
              
                .
              
              imsave
              
                (
              
              
                'sk.png'
              
              
                ,
              
               image
              
                )
              
              
io
              
                .
              
              show
              
                (
              
              
                )
              
              
                print
              
              
                (
              
              image
              
                )
              
              
                # (336, 500, 3)
              
              
                # uint8
              
              
                # 504000
              
              
                [
              
              
                [
              
              
                [
              
              
                221
              
              
                227
              
              
                225
              
              
                ]
              
              
                [
              
              
                222
              
              
                226
              
              
                225
              
              
                ]
              
              
                [
              
              
                220
              
              
                224
              
              
                223
              
              
                ]
              
              
                .
              
              
                .
              
              
                .
              
              
                .
              
              
                .
              
              
                .
              
              
                [
              
              
                27
              
              
                21
              
              
                0
              
              
                ]
              
              
                [
              
              
                12
              
              
                7
              
              
                0
              
              
                ]
              
              
                [
              
              
                11
              
              
                8
              
              
                0
              
              
                ]
              
              
                ]
              
              
                ]
              
            
          

在這里插入圖片描述
你不能不知道的八種 Python 圖像庫的圖片讀取方法總結_第7張圖片

            
              
                from
              
               skimage 
              
                import
              
               io

              
                # from skimage import color
              
              

image2 
              
                =
              
               io
              
                .
              
              imread
              
                (
              
              
                '1.jpg'
              
              
                ,
              
              as_grey
              
                =
              
              
                True
              
              
                )
              
              
                # 讀入灰度圖
              
              
                # image3 = io.imread('1.jpg')
              
              
                # image3 = color.rgb2grey(image3)
              
              
                ''' skimage.color.rgb2grey(rgb) skimage.color.rgb2hsv(rgb) skimage.color.rgb2lab(rgb) skimage.color.gray2rgb(image) skimage.color.hsv2rgb(hsv) skimage.color.lab2rgb(lab) '''
              
              
                print
              
              
                (
              
              image2
              
                .
              
              dtype
              
                )
              
              
                print
              
              
                (
              
              image2
              
                .
              
              size
              
                )
              
              
                print
              
              
                (
              
              image2
              
                .
              
              shape
              
                )
              
              
io
              
                .
              
              imshow
              
                (
              
              image2
              
                )
              
              
io
              
                .
              
              imsave
              
                (
              
              
                'sk_gray.png'
              
              
                ,
              
              image2
              
                )
              
              
io
              
                .
              
              show
              
                (
              
              
                )
              
              
                print
              
              
                (
              
              image2
              
                )
              
              
                # float64
              
              
                # 168000
              
              
                # (336, 500)
              
              
                [
              
              
                [
              
              
                0.88463059
              
              
                0.88265843
              
              
                0.87481529
              
              
                .
              
              
                .
              
              
                .
              
              
                0.87390667
              
              
                0.87390667
              
              
                0.87390667
              
              
                ]
              
              
                [
              
              
                0.89247373
              
              
                0.88658
              
              
                0.88265843
              
              
                .
              
              
                .
              
              
                .
              
              
                0.87307333
              
              
                0.87307333
              
              
                0.87307333
              
              
                ]
              
              
                [
              
              
                0.88658
              
              
                0.88658
              
              
                0.8843251
              
              
                .
              
              
                .
              
              
                .
              
              
                0.87253765
              
              
                0.87253765
              
              
                0.87253765
              
              
                ]
              
              
                .
              
              
                .
              
              
                .
              
              
                [
              
              
                0.94454039
              
              
                0.95238353
              
              
                0.96414824
              
              
                .
              
              
                .
              
              
                .
              
              
                0.00333333
              
              
                0.00361608
              
              
                0.01876667
              
              
                ]
              
              
                [
              
              
                0.95238353
              
              
                0.94061882
              
              
                0.95238353
              
              
                .
              
              
                .
              
              
                .
              
              
                0.04138824
              
              
                0.01061098
              
              
                0.01872196
              
              
                ]
              
              
                [
              
              
                0.92885412
              
              
                0.90140314
              
              
                0.91316784
              
              
                .
              
              
                .
              
              
                .
              
              
                0.08141529
              
              
                0.02963843
              
              
                0.03161059
              
              
                ]
              
              
                ]
              
            
          

你不能不知道的八種 Python 圖像庫的圖片讀取方法總結_第8張圖片
你不能不知道的八種 Python 圖像庫的圖片讀取方法總結_第9張圖片

七、Tensorflow——tf.image.decode

tf.image.decode 是一系列的函數:

  • tf.image.decode_bmp

channels = ?
0:使用BMP編碼圖像中的通道數量。
3:輸出RGB圖像。
4:輸出RGBA圖像。

  • tf.image.decode_jpeg

channels = ?
0:使用JPEG編碼圖像中的通道數量。
1:輸出灰度圖像。
3:輸出RGB圖像。

  • tf.image.decode_png

channels = ?
0:使用PNG編碼圖像中的通道數量。
1:輸出灰度圖像。
3:輸出RGB圖像。
4:輸出RGBA圖像。

實例推薦博客——TensorFlow圖像數據處理函數——圖像大小調整(最全面的可運行的代碼)

八、總結

TensorFlow 的讀取方式使用的比較少,除了 TensorFlow 之外,大都是比較熱門的方法。

除了 OpenCV 讀入的彩色圖片以 BGR 順序存儲外,其他所有圖像庫讀入彩色圖片都以 RGB 存儲。

除了 PIL 讀入的圖片是 img 類之外,其他庫讀進來的圖片都是以 numpy 矩陣。

綜合來看,還是 OpenCV 的性能更好,更推薦使用。

#、參考文章

  • Python各類圖像庫的圖片讀寫方式總結
  • https://www.w3cschool.cn/tensorflow_python/
  • 官方API文檔

更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久热免费 | 久久久久国产精品 | 午夜性啪啪A片免费播放 | 欧美日韩一区二区三区视频播 | 欧美视频在线看 | 欧美a∨一区二区三区久久黄 | 在线播放国产精品 | 性香港xxxxx免费视频播放 | 日韩不卡在线 | 亚洲伊人久久综合 | 毛片免费大全短视频 | 羞羞视频免费网站在线看 | 欧美视频在线免费 | 狠狠添 | 日韩高清一区二区 | 日韩 欧美 自拍 | 日本欧美一区二区三区视频麻豆 | 美女午夜色视频在线观看 | 欧美成人性生活 | 日韩女同一区二区三区 | 91看片淫黄大片在看 | 99精品欧美一区二区三区综合在线 | 久草6| 午夜理论电影在线观看亚洲 | 国产一区久久 | 亚洲欧美日本在线 | 谍影特工在线观看完整版 | 免费观看一级毛片 | 亚洲一区二区三区在线看 | 欧美激情综合亚洲五月蜜桃 | 国产精品久久久久9999高清 | 久久久久久久国产 | 国产亚洲一区二区三区 | 99精品视频在线 | 成年免费视频网站入口 | 男人激烈吮乳动态图 | 欧美成人精品欧美一级 | 日韩在线视频在线 | 99精品视频在线观看 | 91视视频在线观看入口直接观看 | 久久久精品一区二区三区 |