溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

tensorflow中的圖片讀取和裁剪常用的方式有哪些

發布時間:2020-07-01 09:45:21 來源:億速云 閱讀:241 作者:清晨 欄目:開發技術

小編給大家分享一下tensorflow中的圖片讀取和裁剪常用的方式有哪些,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討方法吧!

一 方式1: skimage

from skimage import data, io, transform, color 
import matplotlib.pyplot as plt 
 
# io.imread 讀出的圖片格式是uint8,value是numpy array 類型。
image = data.coffee()
image = io.imread(dir)
 
plt.imshow(image)
plt.show()
 
io.save('1.jpg',image) #保存圖像
 
image_gray = color.rgb2gray(image) #轉換為灰度圖像
io.save('2.jpg',image_gray)
 
# 通過transform.resize()裁剪后的圖片是以 float64的格式存儲的,數值的取值范圍是(0~1)
image_ = transform.resize(image,(200,200))
img = image_ * 255 #將圖片的取值范圍改成(0~255)
img = img.astype(np.uint8) 
img = image_ * 255 #將圖片的取值范圍改成(0~255)
img = img.astype(np.uint8) 

二、方式2:cv2

import cv2
import matplotlib.pyplot as plt 
 
# cv2.imread讀出的圖片格式是uint8,value也是numpy array 類型。
# 圖像數據格式是以BGR的格式進行存儲的。需要將存儲類型改成RGB 的形式才能正常顯示原圖的顏色。
image=cv2.imread(dir) 
b,g,r = cv2.split(image)  #將圖像通道分離開 
rgb_image = cv2.merge([r,g,b]) #以RGB的形式重新組合 
#image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) 也可以使用這個函數直接轉換成RGB 形式 
plt.imshow(rgb_image) 
 
# 通過cv2.resize()裁剪后的圖片還是以 numpy array 的方式保存的, 數值的取值范圍是(0~255)
image_cv2 = cv2.resize(rgb_image)
 
image=cv2.imread(dir) 
b,g,r = cv2.split(image)  #將圖像通道分離開 
rgb_image = cv2.merge([r,g,b]) #以RGB的形式重新組合 
#image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) 也可以使用這個函數直接轉換成RGB 形式 
plt.imshow(rgb_image) 

# 通過cv2.resize()裁剪后的圖片還是以 numpy array 的方式保存的, 數值的取值范圍是(0~255)
image_cv2 = cv2.resize(rgb_image)

補充知識:tensorflow中兩種讀圖及裁剪圖片的區別(io.imread和cv2.imread)以及(transform.resize和cv2.resize)

Tensorflow中,在訓練圖片數據之前,需要先對圖片進行預處理,讀圖和裁剪是最基本的兩步。常見的的讀圖何裁剪分別有兩種方式,這里小編將和大家分享下這幾種方式的實現以及他們之間的區別。

一、常見的兩種讀圖方式 io.imread() 和 cv2.imread()

1.io.imread 讀出的圖片格式是uint8,value是numpy array 類型。對于RGB 圖片,圖像數據是以RGB 的格式進行存儲的。

tensorflow中的圖片讀取和裁剪常用的方式有哪些

2.cv2.imread讀出的圖片格式是uint8 ,value也是numpy array 類型。唯一的區別是,圖像數據格式是以BGR的格式進行存儲的。需要將存儲類型改成RGB 的形式才能正常顯示原圖的顏色。特別是制作tfrecord 時,需要將圖片通道改成RGB,具體代碼如下。

import cv2
import matplotlib.pyplot as plt
from skimage import transform 
import numpy as np
import skimage.io as io 
 
train_dir = 'E:/TensorFlow/Project_TF/flower_tfrecord/data/test/roses/timg.jpg'
 
'''以cv2方式讀取圖片'''
image=cv2.imread(train_dir)
b,g,r = cv2.split(image)  #將圖像通道分離開
rgb_image = cv2.merge([r,g,b]) #以RGB的形式重新組合
 
#image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) 也可以使用這個函數直接轉換成RGB 形式
plt.imshow(rgb_image)
 
'''以io.imread方式讀取圖片'''
#image = io.imread(train_dir) #讀圖并顯示 
#plt.imshow(image)

二、常見的兩種圖片裁剪方式 cv2.resize() 和 transform.resize()

1.通過cv2.resize()裁剪后的圖片還是以 numpy array 的方式保存的, 數值的取值范圍是(0~255)

tensorflow中的圖片讀取和裁剪常用的方式有哪些

2.通過transform.resize()裁剪后的圖片是以 float64的格式存儲的,數值的取值范圍是(0~1)。通常在制作tfrecord 數據集的過程中,我們需要將其轉換成numpy array的形式,具體代碼如下

'''以io.imread方式讀取圖片并使用transform形式裁剪圖片'''
image = io.imread(train_dir) #讀圖并顯示 
plt.imshow(image)
image =transform.resize(image, (208, 208))
img = image * 255 #將圖片的取值范圍改成(0~255)
img = img.astype(np.uint8) 
 
plt.imshow(img) 

看完了這篇文章,相信你對tensorflow中的圖片讀取和裁剪常用的方式有哪些有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女