TensorFlow的圖像操作功能筆記

為什麼要盡量使用Tensorflow的圖像操作功能

因為Tensorflow對GPU的支援度高,盡量完全使用Tensorflow內建的圖像操作功能對圖像做操作,可以避免資料在GPU和CPU之間轉換。

將資料集轉為dataset

可以使用 TensorFlow 的 tf.data.Dataset API 將訓練圖像和標籤轉換為數據集。

首先,需要將訓練圖像和標籤轉換為 TensorFlow 張量:

然後,使用 tf.data.Dataset.from_tensor_slices 方法將張量轉換為數據集:

使用 tf.data.Dataset 中的方法對數據集進行轉換和操作,例如混淆、重新排列和批次化。例如,要將數據集混淆並分成小批次

將BGR的tensor物件轉為灰階

可以使用rgb_to_grayscale將 BGR 格式的圖片轉換為灰階:

在 TensorFlow 中,通常會將圖片的數據型別轉換為浮點數,因為浮點數能夠提供更大的精度和更多的值域。浮點數通常用於訓練模型和進行數值運算。

例如,在進行影像辨識任務時,您可能會將圖片的像素值轉換為浮點數,以便模型能夠更好地學習圖片中的特徵。同樣地,在進行數值運算時,浮點數也能夠提供更高的精度,以便得到更精確的結果。

注意:不同的數據型別有不同的值域和精度,因此在選擇數據型別時,需要考慮您的應用程序的需求

將灰階圖片轉成黑白

使用以下方法將灰階圖片轉換為黑白圖片(類似 OpenCV 的 threshold):

我們先設定閾值(在這裡設為 128),然後將圖片中的像素值與閾值進行比較。如果像素值大於閾值,則轉換為 1(黑色);否則轉換為 0(白色)。

載入圖片

使用 tf.io.read_file 函數讀取 JPEG 圖片,然後使用 tf.image.decode_jpeg 函數解碼圖片。接著,使用 tf.image.convert_image_dtype 函數將圖片轉換為 GPU 可處理的格式(通常是浮點數)。

縮小圖片

圖片改為灰階

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *