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.
- crop
tf.image.resize_with_crop_or_pad(image, target_height, target_width)
將圖片剪切後者填充到目標高度和寬度。
填充時用0填充。
返回剪切或者填充後的圖片 shape爲[target_height,target_width,channels]
- 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 !!!