当前位置:网站首页>使用tf.image.resize() 和tf.image.resize_with_pad()调整图像大小
使用tf.image.resize() 和tf.image.resize_with_pad()调整图像大小
2022-08-03 22:29:00 【Erosion_ww】
tf.image.resize和tf.image.resize_with_pad使用方法
tf.image.resize()
作用
~~~~ 使用指定的方法调整图像大小。
~~~~ 如果原始纵横比与大小不同,调整大小的图像将失真。 为避免失真,可用tf.image.resize_with_pad()
参数
tf.image.resize(
images, # 形状 [batch, height, width, channels] 的 4-D 张量或形状 [height, width, channels] 的 3-D 张量。
size, # 2 个元素的一维 int32 张量:new_height,new_width。 图像的新尺寸。
method=ResizeMethod.BILINEAR, # 一个 image.ResizeMethod,或等效的字符串。 默认为双线性。
preserve_aspect_ratio=False, # 是否保留纵横比。
# true,图像将被调整为适合大小的大小,同时保留原始图像的纵横比。
# 若尺寸大于图像的当前尺寸,则放大图像。 默认为false。
antialias=False, # 对图像进行下采样时是否使用anti-aliasing filter。
name=None # 此操作的名称(可选)。
)
~~~~ 其中,Image.ResizeMethod()的选项有:
~~~~ • bilinear: 双线性插值。若antialisa为true,则在下采样时成为半径为1的hat/tent filter。
~~~~ • lanczos3: Lanczos kernel with radius 3。高质量的实用过滤器,但可能有一些ringing,尤其是在合成图像上。
~~~~ • lanzos5:Lanczos kernel with radius 5。非常高质量的滤波器,但可能有更强的ringing。
~~~~ • bicubic:三次插值。相当于Catmull-Rom kernel,与lanczos3kernel相比较,质量相当好,速度更快,尤其是在上采样时。
~~~~ • gaussian:Gaussian kernel with radius 3, sigma = 1.5 / 3.0.
~~~~ • nearest:最近邻插值。 与最近邻插值一起使用时,antialias无效。
~~~~ • area:使用区域插值进行抗锯齿重采样。 与区域插值一起使用时,antialias没有效果。
~~~~ •mitchellcubic:Mitchell-Netravali Cubic non-interpolating filter. 对于合成图像(尤其是那些缺乏适当预过滤的图像),ringing比Cubic interpolant of Keys少,不那么锐利。
返回值
~~~~ If images was 4-D, a 4-D float Tensor of shape [batch, new_height, new_width, channels].
~~~~ If images was 3-D, a 3-D float Tensor of shape [new_height, new_width, channels].
例子
import tensorflow as tf # 导入tensorflow
img_path ='C:\\Users\\xxx\\.keras\\datasets\\flower_photos\\roses\\6158504080_b844a9ae05.jpg' # 输入图片路径
img_raw = tf.io.read_file(img_path) # 读取图片内容,返回值时string的tensor
img_tensor = tf.image.decode_image(img_raw) # 对输入的string的tensor进行解码
print(img_tensor.shape) # 输入解码后的图像形状
print(img_tensor.dtype) # 输入解码后的图像表示类型
img_final = tf.image.resize(img_tensor, [192, 192]) # 调整图像大小
print(img_final.shape) # 输入调整后的图像大小
(333, 500, 3)
<dtype: 'uint8'>
(192, 192, 3)
tf.image.resize_with_pad()
作用
~~~~ 调整图像大小并将图像填充到目标宽度和高度。
~~~~ 通过保持纵横比不变而不失真,将图像大小调整为目标宽度和高度。 如果目标尺寸与图像尺寸不匹配,则会调整图像大小,然后用零填充以匹配请求的尺寸。
参数
tf.image.resize_with_pad(
image, # 形状 [batch, height, width, channels] 的 4-D 张量或形状 [height, width, channels] 的 3-D 张量。
target_height, # 目标高度
target_width, # 目标宽度
method=ResizeMethod.BILINEAR, # 用于调整图像大小的方法。 见 image.resize()
antialias=False # 调整大小时是否使用抗锯齿。 参见“image.resize()”。
)
返回值
~~~~ Resized and padded image.
~~~~ If images was 4-D, a 4-D float Tensor of shape [batch, new_height, new_width, channels].
~~~~ If images was 3-D, a 3-D float Tensor of shape [new_height, new_width, channels].
主要参考:
tf.image.resize | TensorFlow Core v2.9.1 (google.cn)
tf.image.resize_with_pad | TensorFlow Core v2.9.1 (google.cn)
边栏推荐
- Analysys Analysis: The transaction scale of China's online retail B2C market in Q2 2022 will reach 2,344.47 billion yuan
- Flink--Join以及Flink函数
- override学习(父类和子类)
- What is Adobe?
- 目标检测技术研究现状及发展趋势
- 图的基础概念
- Causes of Mysql Disk Holes and Several Ways to Rebuild Tables
- 深度学习和机器学习有什么区别?
- UVa 437 - The Tower of Babylon(白书)
- Testng监听器
猜你喜欢

Data_web(八)mysql增量同步到mongodb

LabVIEW code generation error 61056

pikachu Over permission

113. Teach a Man how to fish - How to query the documentation and technical implementation details of any SAP UI5 control property by yourself

Canvas App中点击图标生成PDF并保存到Dataverse中

Quickly build a website with static files

【刷题篇】二叉树的右视图

【day6】类与对象、封装、构造方法

如何创建一个Web项目
![[MySQL Advanced] Creation and Management of Databases and Tables](/img/31/2015122e409148b3679b09a03db869.png)
[MySQL Advanced] Creation and Management of Databases and Tables
随机推荐
Kubernetes入门到精通-Operator 模式
【开源框架】国内首个通用云计算框架,任意程序都可做成云计算。
2022-08-03 Oracle executes slow SQL-Q17 comparison
Makefile
What is memoization and what is it good for?
log4j-slf4j-impl cannot be present with log4j-to-slf4j
utlis 线程池
Basic Concepts of Graphs
趣链的产品构架
488. Zuma Game
encapsulation, package, access modifier, static variable
云计算国内外发展现状
关于IDO预售系统开发技术讲解丨浅谈IDO预售合约系统开发原理分析
How many way of calling a function?
【MySQL进阶】数据库与表的创建和管理
2022-08-02 mysql/stonedb慢SQL-Q18-内存使用暴涨分析
start with connect by 实现递归查询
2019年10月SQL注入的两倍
RPA助力商超订单自动化!
First domestic open source framework 】 【 general cloud computing framework, any program can be made into cloud computing.