日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

你不能不知道的八種 Python 圖像庫(kù)的圖片讀取方法總結(jié)

系統(tǒng) 1933 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
      • 八、總結(jié)
      • #、參考文章

一、前言

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

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

二、opencv——cv2.imread

OpenCV作為最常用的圖像處理庫(kù),實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺方面的很多通用算法,可以說是很全面和強(qiáng)大了。如果你只想掌握一個(gè)圖像庫(kù)的話,OpenCV是你的最佳選擇。

注意

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

              
                import
              
               matplotlib
              
                .
              
              pyplot 
              
                as
              
               plt


              
                # 讀入圖片:默認(rèn)彩色圖,cv2.IMREAD_GRAYSCALE灰度圖,cv2.IMREAD_UNCHANGED包含alpha通道
              
              
img 
              
                =
              
               cv2
              
                .
              
              imread
              
                (
              
              
                '2.jpg'
              
              
                )
              
              
gray 
              
                =
              
               cv2
              
                .
              
              cvtColor
              
                (
              
              img
              
                ,
              
               cv2
              
                .
              
              COLOR_BGR2GRAY
              
                )
              
              
                # 轉(zhuǎn)換為灰度圖
              
              
img_rgb 
              
                =
              
               cv2
              
                .
              
              cvtColor
              
                (
              
              img
              
                ,
              
               cv2
              
                .
              
              COLOR_BGR2RGB
              
                )
              
              
                # 轉(zhuǎn)換為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
              
                )
              
              
                # 像素總數(shù)目
              
              
                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 圖像庫(kù)的圖片讀取方法總結(jié)_第1張圖片
cv2 顯示圖像:

細(xì)心的同學(xué)發(fā)現(xiàn)一個(gè)問題, plt cv2 顯示圖像顏色恰好是相反的,這是一個(gè)接口的問題,因?yàn)? plt 是RGB接口的,但是 cv2 是BGR接口的,所以 plt 顯示的是正確的顏色,也就是‘BGR’、灰度圖、‘RGB’,但是 cv2 顯示就是相反的顏色。

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

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

OpenCV 讀取灰度圖的時(shí)候,可以直接參數(shù)讀取灰度圖;或者先讀入彩色圖,再轉(zhuǎn)灰度圖。

            
              
                import
              
               cv2


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

cv2
              
                .
              
              waitKey
              
                (
              
              
                )
              
            
          

在這里插入圖片描述

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

正常情況下,我們的圖片是0-255的,但是有時(shí)候我們需要?dú)w一化處理為0~1。

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

img_norm 
              
                =
              
               cv2
              
                .
              
              imread
              
                (
              
              
                '1.jpg'
              
              
                )
              
              
img_norm 
              
                =
              
               img_norm
              
                .
              
              astype
              
                (
              
              
                "float"
              
              
                )
              
              
                /
              
              
                255.0
              
              
                # 注意需要先轉(zhuǎn)化數(shù)據(jù)類型為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 圖像庫(kù)的圖片讀取方法總結(jié)_第2張圖片
OpenCV如何進(jìn)行存儲(chǔ)圖片呢?使用 cv2.imwrite 函數(shù)即可。

            
              
                # 存儲(chǔ)圖片
              
              
cv2
              
                .
              
              imwrite
              
                (
              
              
                'test1.jpg'
              
              
                ,
              
              img_norm
              
                )
              
              
                # 得到的是全黑的圖片,因?yàn)槲覀儼阉鼩w一化了
              
              
                # 所以要得到可視化的圖,需要先*255還原
              
              
img_test 
              
                =
              
               img_norm 
              
                *
              
              
                255
              
              
cv2
              
                .
              
              imwrite
              
                (
              
              
                'test2.jpg'
              
              
                ,
              
              img_test
              
                )
              
              
                # 這樣就可以看到彩色原圖了
              
            
          

在這里插入圖片描述

三、PIL——PIL.Image.open

PIL 即 Python Imaging Library,也即為我們所稱的 Pillow,已經(jīng)是 Python 平臺(tái)事實(shí)上的圖像處理標(biāo)準(zhǔn)庫(kù)了。PIL 功能非常強(qiáng)大,但API卻非常簡(jiǎn)單易用。它比 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'
              
              
                )
              
              
                # 轉(zhuǎn)化為灰度圖
              
              
                print
              
              
                (
              
              gray
              
                .
              
              mode
              
                )
              
              
                # L為灰度圖,RGB為真彩色,RGBA為加了透明通道
              
              
gray
              
                .
              
              show
              
                (
              
              
                )
              
              
                # pillow讀進(jìn)來的圖片不是矩陣,我們將圖片轉(zhuǎn)矩陣
              
              
arr 
              
                =
              
               np
              
                .
              
              array
              
                (
              
              img
              
                )
              
              
                print
              
              
                (
              
              arr
              
                .
              
              shape
              
                )
              
              
                print
              
              
                (
              
              arr
              
                .
              
              dtype
              
                )
              
              
                print
              
              
                (
              
              arr
              
                )
              
              
                # 灰度圖的轉(zhuǎn)化與彩圖轉(zhuǎn)化一樣
              
              
arr_gray 
              
                =
              
               np
              
                .
              
              array
              
                (
              
              gray
              
                )
              
              
                print
              
              
                (
              
              arr_gray
              
                .
              
              shape
              
                )
              
              
                print
              
              
                (
              
              arr_gray
              
                .
              
              dtype
              
                )
              
              
                print
              
              
                (
              
              arr_gray
              
                )
              
              
                # 矩陣再轉(zhuǎn)為圖像,進(jìn)行存儲(chǔ)
              
              
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 圖像庫(kù)的圖片讀取方法總結(jié)_第3張圖片

四、matplotlib——matplotlib.image.imread

Matplotlib 是 Python 的 2D 繪圖庫(kù),它以各種硬拷貝格式和跨平臺(tái)的交互式環(huán)境生成出版質(zhì)量級(jí)別的圖形。 它可與 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'
              
              
                )
              
              
                # 也可以關(guān)閉顯示x,y軸上的數(shù)字
              
              
plt
              
                .
              
              show
              
                (
              
              
                )
              
              
                # plt.imread讀入的就是一個(gè)矩陣,跟opencv一樣,但彩圖讀進(jìn)的是RGB,與opencv有區(qū)別
              
              
                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
              
                (
              
              
                )
              
              
                # 此時(shí)會(huì)發(fā)現(xiàn)顯示的是熱量圖,不是我們預(yù)想的灰度圖,可以添加 cmap 參數(shù)解決
              
              
plt
              
                .
              
              imshow
              
                (
              
              im_r
              
                ,
              
               cmap
              
                =
              
              
                'Greys_r'
              
              
                )
              
              
plt
              
                .
              
              show
              
                (
              
              
                )
              
            
          

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

            
              
                # 與opencv結(jié)合使用
              
              
                import
              
               cv2

              
                import
              
               matplotlib
              
                .
              
              pyplot 
              
                as
              
               plt

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

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

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

            
              
                # pillow和matplotlib結(jié)合
              
              
                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'
              
              
                )
              
              
                # 存儲(chǔ)圖像,注意,必須在show之前savefig,否則存儲(chǔ)的圖片一片空白
              
              
plt
              
                .
              
              savefig
              
                (
              
              
                'timo.jpg'
              
              
                )
              
              
plt
              
                .
              
              show
              
                (
              
              
                )
              
            
          

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

            
              
                import
              
               matplotlib
              
                .
              
              pyplot 
              
                as
              
               plt

im_1 
              
                =
              
               plt
              
                .
              
              imread
              
                (
              
              
                '1.jpg'
              
              
                )
              
              
im_2 
              
                =
              
               plt
              
                .
              
              imread
              
                (
              
              
                '2.jpg'
              
              
                )
              
              
figure 
              
                =
              
               plt
              
                .
              
              figure
              
                (
              
              figsize
              
                =
              
              
                (
              
              
                10
              
              
                ,
              
              
                5
              
              
                )
              
              
                )
              
              
                # 調(diào)整顯示圖片的大小
              
              
                ''' figsize參數(shù):指定繪圖對(duì)象的寬度和高度,單位為英寸; dpi參數(shù)指定繪圖對(duì)象的分辨率,即每英寸多少個(gè)像素,缺省值為80。 因此本例中所創(chuàng)建的圖表窗口的寬度為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 圖像庫(kù)的圖片讀取方法總結(jié)_第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
              
                )
              
              
                # 存儲(chǔ)圖像,這個(gè)不需要先存儲(chǔ),和前面不一樣
              
              
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
              
                )
              
              
                # 存儲(chǔ)圖像,這個(gè)不需要先存儲(chǔ),和前面不一樣
              
              
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 圖像庫(kù)的圖片讀取方法總結(jié)_第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 圖像庫(kù)的圖片讀取方法總結(jié)_第8張圖片
你不能不知道的八種 Python 圖像庫(kù)的圖片讀取方法總結(jié)_第9張圖片

七、Tensorflow——tf.image.decode

tf.image.decode 是一系列的函數(shù):

  • tf.image.decode_bmp

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

  • tf.image.decode_jpeg

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

  • tf.image.decode_png

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

實(shí)例推薦博客——TensorFlow圖像數(shù)據(jù)處理函數(shù)——圖像大小調(diào)整(最全面的可運(yùn)行的代碼)

八、總結(jié)

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

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

除了 PIL 讀入的圖片是 img 類之外,其他庫(kù)讀進(jìn)來的圖片都是以 numpy 矩陣。

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

#、參考文章

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

更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 金川县| 久治县| 石棉县| 孟连| 娱乐| 井冈山市| 武安市| 枝江市| 大埔县| 团风县| 宜春市| 白山市| 邢台市| 临夏县| 永福县| 建阳市| 南皮县| 白沙| 盐边县| 北安市| 白水县| 铁岭市| 盐津县| 耒阳市| 盐池县| 南京市| 巫溪县| 凌云县| 安西县| 扎赉特旗| 霍城县| 东丽区| 兰西县| 丰城市| 黑龙江省| 衡水市| 华宁县| 德保县| 临城县| 聂拉木县| 库尔勒市|