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.


2.crop

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


将图片剪切后者填充到目标高度和宽度。


填充时用0填充。


返回剪切或者填充后的图片 shape为[target_height,target_width,channels]


3.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 !!!


公众号:FPGA之旅

目录
相关文章
|
2月前
|
机器学习/深度学习 API TensorFlow
TensorFlow的高级API:tf.keras深度解析
【4月更文挑战第17天】本文深入解析了TensorFlow的高级API `tf.keras`,包括顺序模型和函数式API的模型构建,以及模型编译、训练、评估和预测的步骤。`tf.keras`结合了Keras的易用性和TensorFlow的性能,支持回调函数、模型保存与加载等高级特性,助力提升深度学习开发效率。
|
2月前
|
机器学习/深度学习 人工智能 API
人工智能应用工程师技能提升系列2、——TensorFlow2——keras高级API训练神经网络模型
人工智能应用工程师技能提升系列2、——TensorFlow2——keras高级API训练神经网络模型
57 0
|
2月前
|
机器学习/深度学习 TensorFlow API
【计算机视觉】Keras API和Tensorflow API的讲解(超详细必看)
【计算机视觉】Keras API和Tensorflow API的讲解(超详细必看)
45 1
|
11月前
|
XML TensorFlow API
TensorFlow Object Detection API 超详细教程和踩坑过程
TensorFlow Object Detection API 超详细教程和踩坑过程
163 1
|
机器学习/深度学习 数据可视化 API
《30天吃掉那只 TensorFlow2.0》 3-2 中阶API示范
《30天吃掉那只 TensorFlow2.0》 3-2 中阶API示范
《30天吃掉那只 TensorFlow2.0》 3-2 中阶API示范
|
TensorFlow API 算法框架/工具
TensorFlow利用函数API实现简易自编码器
TensorFlow利用函数API实现简易自编码器
59 0
TensorFlow利用函数API实现简易自编码器
|
API TensorFlow 算法框架/工具
TensorFlow利用函数式API实现共享层
TensorFlow利用函数式API实现共享层
72 0
TensorFlow利用函数式API实现共享层
|
TensorFlow 算法框架/工具
TensorFlow修改图像尺寸:AttributeError: module ‘tensorflow._api.v2.image‘ has no attribute ‘image‘
TensorFlow修改图像尺寸:AttributeError: module ‘tensorflow._api.v2.image‘ has no attribute ‘image‘
105 0
TensorFlow修改图像尺寸:AttributeError: module ‘tensorflow._api.v2.image‘ has no attribute ‘image‘
|
API TensorFlow 算法框架/工具
《30天吃掉那只 TensorFlow2.0》 四、TensorFlow的低阶API
《30天吃掉那只 TensorFlow2.0》 四、TensorFlow的低阶API
《30天吃掉那只 TensorFlow2.0》 四、TensorFlow的低阶API
|
机器学习/深度学习 数据可视化 API
《30天吃掉那只 TensorFlow2.0》 3-3 高阶API示范
《30天吃掉那只 TensorFlow2.0》 3-3 高阶API示范
《30天吃掉那只 TensorFlow2.0》 3-3 高阶API示范