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之旅
相关文章
- 图像处理工具Python扩展库,你了解吗?
- 十个常用的损失函数解释以及Python代码实现
- 30 个数据科学工作中必备的 Python 包
- 如何在 Windows 上安装 Python
- 几行 Python 代码就可以提取数百个时间序列特征
- 使用Python快速搭建接口自动化测试脚本实战总结
- 哪种编程语言最适合开发网页抓取工具?
- 不要在 Python 中使用循环,这些方法其实更棒!
- 震惊!用Python探索《红楼梦》的人物关系!
- 如何最简单、通俗地理解Python模块?
- 酷炫,Python实现交通数据可视化!
- 为什么急于寻找Python的替代者?
- 30 个数据工程必备的Python 包
- 去字节面试被面这题能答上来吗?谈谈你对时间轮的理解?
- 火山引擎在行为分析场景下的 ClickHouse JOIN 优化
- 用Python爬取了某宝1166家月饼数据进行可视化分析,终于找到最好吃的月饼~
- 在 Linux 上试试这个基于 Python 的文件管理器
- Python列表解析式到底该怎么用?
- 如何快速把你的 Python 代码变为 API
- 十个Python初学者常犯的错误