python中讀取圖片的6種方式

作者:小伍哥

python進行圖片處理,第一步就是讀取圖片,這裡給大家整理了6種圖片的讀取方式,並將讀取的圖片裝換成numpy。ndarray()格式。

首先需要準備一張照片,假如你有女朋友的話,可以用女朋友的,沒有的話,那還學啥python,趕緊找物件去吧!

圖片路徑:

dirpath = “C:/Users/wuzhengxiang/Desktop/beatgirl。jpg”

一、OpenCV讀取圖片

OpenCV讀取的圖片,直接就是numpy。ndarray格式,無需轉換

import cv2

img_cv = cv2。imread(dirpath)#讀取資料

print(“img_cv:”,img_cv。shape)

img_cv: (1856, 2736, 3)

print(“img_cv:”,type(img_cv))

img_cv:

#看下讀取的資料怎麼樣

img_cv

array([[[ 0, 3, 0],

[ 11, 20, 17],

。。。,

[ 5, 23, 16]],

[[ 0, 2, 0],

。。。,

[ 5, 23, 16]]]

二、PIL讀取圖片

PIL讀取的圖片並不是直接的numpy。ndarray格式,需要進行轉換

from PIL import Image

import numpy as np

img_PIL = Image。open(dirpath)#讀取資料

print(“img_PIL:”,img_PIL)

img_PIL:

size=2736x1856 at 0x2202A8FC108>

print(“img_PIL:”,type(img_PIL))

img_PIL:

#將圖片轉換成np。ndarray格式

img_PIL = np。array(img_PIL)

print(“img_PIL:”,img_PIL。shape)

img_PIL: (1856, 2736, 3)

print(“img_PIL:”,type(img_PIL))

img_PIL:

三、keras讀取圖片

keras深度學習的框架,裡面也是內建了讀取圖片的模組,該模組讀取的也不是陣列格式,需要進行轉換。

from keras。preprocessing。image import array_to_img, img_to_array

load_imgimg_keras = load_img(dirpath)#讀取資料

print(“img_keras:”,img_keras)

img_keras:

size=2736x1856 at 0x2201D184BC8>

print(“img_keras:”,type(img_keras))

img_keras:

#使用keras裡的img_to_array()

img_keras = img_to_array(img_keras)

print(“img_keras:”,img_keras。shape)

img_keras: (1856, 2736, 3)

print(“img_keras:”,type(img_keras))

img_keras:

#可以使用使用np。array()進行轉換

mg_keras= np。array(img_keras)

四、skimage讀取圖片

scikit-image是基於scipy的一款影象處理包,它將圖片作為numpy陣列進行處理,讀取的資料正好是numpy。ndarray格式。

import skimage。io as io

img_io = io。imread(dirpath)#讀取資料

print(“img_io :”,img_io 。shape)

img_io : (1856, 2736, 3)

print(“img_io :”,type(img_io ))

img_io :

五、matplotlib.image讀取圖片

利用matplotlib。image讀取的圖片,直接就生成了陣列格式

import matplotlib。image as mpig

img_mpig = mpig。imread(dirpath)#讀取資料

print(“img_mpig :”,img_mpig 。shape)

img_mpig : (1856, 2736, 3)

print(“img_mpig :”,type(img_mpig ))

img_mpig :

六、matplotlib.pyplot讀取圖片

利用matplotlib。pyplot讀取的圖片,同樣也是直接就生成了陣列格式

import matplotlib。pyplot as plt

img_plt = plt。imread(dirpath)

print(“img_plt :”,img_plt 。shape)

img5: (1856, 2736, 3)

print(“img_plt :”,type(img_plt ))

img5:

七、顯示讀取的圖片

同樣,使用matplotlib 包可以打印出來讀取的照片,要列印上述案例中讀取的照片,只需要下面兩行程式碼就行了。

plt。imshow(img_plt , cmap=plt。cm。binary)

plt。show()

圖片三通道的,列印其中一個通道

plt。imshow(img_plt[:,:,1] , cmap=plt。cm。binary)

plt。show()

當然,我們可以隨便構造一個數組,可以顯示出來

digit = [[135,26,33,12],[14,27,43,190],[120,124,134,205]]

plt。imshow(digit, cmap=plt。cm。binary)

plt。show()

python中讀取圖片的6種方式