tensorflow-image處理的API講解

1.編碼和解碼

-編碼:

tf.image.encode_jpeg(image, format=None, quality=None, progressive=None, optimize_size=None, chroma_downsampling=None, density_unit=None, x_density=None, y_density=None, xmp_metadata=None, name=None)

將一個三維形狀爲[height,width,channels],類型爲uint8張量的圖片進行編碼。
format:可選擇編碼輸出圖片的顏色的組成,
可選參數:

  • ‘’:使用原始圖片默認的channels
  • grayscale:輸出的是灰色的JPEG格式的圖片,輸入圖片的channels必須爲1
  • ‘rgb’:輸出的是RGB JPEG 格式的圖片,輸入圖片的channels必須爲3

如果未給定,則根據圖像中的通道數默認選擇格式。

參數(一些可能會用到的,基本上使用的都是默認值):

  • image:uint8類型張量,三維的形狀爲[height,width,channels]
  • format:接收string類型的值,可以有: “”,“grayscale”,“rgb”,默認爲"",每一個像素。的格式。
  • quality: 接收int類型的值,默認爲95,可以選的值是0-100中的數,值越高,圖片的質量越好,但是速度越慢。
  • optimize_size:接收bool類型的值,默認爲False,如果爲真,則使用CPU/RAM減少圖片的大小而不改變質量。

返回string類型的張量,0-D,JPEG類型編碼的圖片。

-解碼:

tf.image.decode_jpeg(contents, channels=None, ratio=None, fancy_upscaling=None, try_recover_truncated=None, acceptable_fraction=None, name=None)

將一個已經編碼的JPEG格式的圖片,轉換成一個uint8類型的張量。

channels:指的是解碼圖片所需要的通道數。
可選的參數有:

  • 0:使用編碼圖片本身的通道數
  • 1:輸出一張灰色圖片
  • 3:輸出一張RGB格式的圖片

參數:

  • contents:string類型的張量,編碼後的圖片。
  • channels:接收int類型的值,可選參數,默認爲 0.
  • ratio:接收int類型的值,默認爲1,可選擇的值有1,2,4,8,縮小比例。

返回值爲uint8類型的張量,三維的形狀爲[height,width,channels]

上面是對JPEG格式圖片進行的,下面直接給出png格式的圖像。

tf.image.decode_png(contents, channels=None, name=None)

解碼與上面的JPEG的相同

tf.image.encode_png(image, compression=None, name=None)

image圖片的channels:

  • 1:灰度圖片
  • 3:RGB類型的圖片
  • 4:RGBA類型的圖片

compression:圖片的壓縮比,值爲默認的-1和可選的0-9,默認的值爲-1.

  1. crop
 tf.image.resize_with_crop_or_pad(image, target_height, target_width)

將圖片剪切後者填充到目標高度和寬度。

填充時用0填充。

返回剪切或者填充後的圖片 shape爲[target_height,target_width,channels]

  1. Flipping and Transposing
tf.image.flip_up_down(image)

垂直翻轉圖片 輸入圖片的維度信息爲 [height,width,channels]
返回的圖片維度和輸入的一樣。

tf.image.random_flip_up_down(image, seed=None)

隨機垂直翻轉圖片,可上面的功能一樣,只是圖片有可能不會翻轉,也有可能翻轉。

tf.image.flip_left_right(image)

水平翻轉圖片,其他的和上面的都一樣

tf.image.random_flip_left_right(image, seed=None)

與上面隨機垂直翻轉圖片的功能差不多。

tf.image.transpose(image)

將圖片的第一維度和第二維度互換。
輸入圖片的維度信息爲[height,width,channels]
輸出圖片的維度信息的[width,height,channels]

圖像調整,TensorFlow提供函數對圖像的亮度,飽和度,對比度以及色條進行調整。

tf.image.adjust_brightness(image, delta)

調節圖片的亮度,delta的值在0到1之間,值越大圖片越亮。

tf.image.adjust_contrast(images, contrast_factor, min_value=None, max_value=None)
  • 調節圖片的對比度。輸入圖片的維度信息可以爲[height,width,channels] 和[batch,height,width,channels]
  • 調節對比度時,每個維度的對比度是獨立的。
  • 計算步驟如下,先計算每一個維度像素的平均值mean,每一個像素值x = (x-mean)*contrast_factor+mean
  • 計算時,數據總是浮點型,計算完後自動將其恢復到原來的類型。

參數:

  • images:輸入的圖片,至少是三維的。
  • contrast_factor:接收數值型,然後將其轉換成float,調節係數。
  • min_value:計算後,如果有像素值小於該像素,則該像素等於該像素。
  • max_value:計算後,如果有像素值大於該像素,則該像素等於該像素。

返回調節後的圖像。

以上基於TensorFlow2.0,。
如果有錯誤的地方,歡迎在下方留言。

Thank for your reading !!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章