亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

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

系統(tǒng) 1787 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)行圖像讀取,但是各種第三方庫的方法又不一樣,用的時(shí)候又有點(diǎn)萌萌的,不知道有什么區(qū)別,比較常用的就是 OpenCV PIL Image ,但是在格式上也總是有各種各樣的問題,所以這一次就好好總結(jié)主流Python圖像庫的一些基本使用方法和需要注意的地方。

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

二、opencv——cv2.imread

OpenCV作為最常用的圖像處理庫,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺方面的很多通用算法,可以說是很全面和強(qiáng)大了。如果你只想掌握一個(gè)圖像庫的話,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 圖像庫的圖片讀取方法總結(jié)_第1張圖片
cv2 顯示圖像:

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

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

            
              
                # 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 圖像庫的圖片讀取方法總結(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)庫了。PIL 功能非常強(qiáng)大,但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'
              
              
                )
              
              
                # 轉(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 圖像庫的圖片讀取方法總結(jié)_第3張圖片

四、matplotlib——matplotlib.image.imread

Matplotlib 是 Python 的 2D 繪圖庫,它以各種硬拷貝格式和跨平臺(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
              
                (
              
              
                )
              
              
                # 所以無論用什么庫讀進(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 圖像庫的圖片讀取方法總結(jié)_第4張圖片
如果先 plt.show ,再 plt.savefig ,保存的圖片就是全白色的。
在這里插入圖片描述
你不能不知道的八種 Python 圖像庫的圖片讀取方法總結(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ù):指定繪圖對象的寬度和高度,單位為英寸; dpi參數(shù)指定繪圖對象的分辨率,即每英寸多少個(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 圖像庫的圖片讀取方法總結(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 圖像庫的圖片讀取方法總結(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 圖像庫的圖片讀取方法總結(jié)_第8張圖片
你不能不知道的八種 Python 圖像庫的圖片讀取方法總結(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ǔ)外,其他所有圖像庫讀入彩色圖片都以 RGB 存儲(chǔ)。

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

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

#、參考文章

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

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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

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

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

【本文對您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 99在线观看精品视频 | 60欧美老妇做爰视频 | 亚洲国产另类久久久精品小说 | 欧美成人久久一级c片免费 欧美成人剧情中文字幕 | 午夜激情男女 | 全部免费国产潢色一级 | 欧美观看一级毛片 | 亚洲欧美中日韩 | 日韩综合一区 | 久久免费成人 | 国产成人精品亚洲 | 日日爽爽 | 一级毛片高清免费播放 | 91在线亚洲综合在线 | 五月天婷婷在线视频 | 色爱区综合激情五月综合激情 | 欧美大陆日韩一区二区三区 | 亚洲爱婷婷色婷婷五月 | 日韩毛片大全 | 欧美一区日韩一区中文字幕页 | 99热这里只有精品4 99热这里只有精品5 | 亚洲一区二区三区福利在线 | 天天操天天射天天操 | 色涩亚洲| 曰本亚洲欧洲色a在线 | 国产成人毛片亚洲精品不卡 | 老子影院午夜伦手机在线看 | 两性色午夜视频免费老司机 | 中文字幕日韩一区 | 天天操夜夜| 91精品国产乱码久久久久久 | 97精品久久天干天天蜜 | 亚洲国产精品婷婷久久 | 成人久久视频 | 免费一级毛片 | 色综合网站在线 | 人人骚 | 毛片大片 | 国产精品视频久久久久久 | 动漫精品一区二区3d | 久青草中文字幕精品视频 |