Ale*_*x I 12 python interpolation image image-resizing tensorflow
我想在TensorFlow中做一个简单的双线性调整(不一定是整数因子).例如,从(32,3,64,64)张量开始,我想要一个(32,3,96,96)张量,其中每个64x64使用双线性插值重新调整1.5倍.最好的方法是什么?
我希望这能支持任意因子> 1,而不仅仅是1.5.
注意:每个64x64上的操作与操作相同skimage.transform.rescale (scale=1.5, order=1).
eta*_*ion 15
tf.image.resize_images应该做你需要的.它接受3D(单幅图像)和4d(批量图像)张量,具有任意深度(通道数).所以这应该有用:
# it's height, width in TF - not width, height
new_height = int(round(old_height * scale))
new_width = int(round(old_width * scale))
resized = tf.image.resize_images(input_tensor, [new_height, new_width])
Run Code Online (Sandbox Code Playgroud)
双线性插值是默认值,因此您无需指定它.您也可以直接使用resize_bilinear.
我建议不使用任何tf.image.resize_*的功能,他们从一个讨厌的错误受苦,将不会被固定。
一系列新的图像重采样功能显然正在准备中。同时,您可以在网上找到一些示例,例如如何使用转置卷积来完成此操作。不幸的是,每通道上采样的效率低得多,但正确比快速好。
编辑
他们终于修复了TF 2.0中的这个错误:
image.resize现在考虑适当的像素中心(...)。
此修复程序当前无法通过渐变,这是...希望可以修复的错误。
| 归档时间: |
|
| 查看次数: |
16674 次 |
| 最近记录: |