我的网络拍摄尺寸的图像100 x 100
像素。因此,我必须调整不同大小的数据集图像的大小。我希望能够从给定图像中提取最大的中心正方形区域,然后将其大小调整为100 x 100
.
更准确地说,假设图像的宽度为200
像素和高度50
像素。然后我想提取本例中最大的中心正方形区域50 x 50
然后将图像大小调整为100 x 100
像素。
使用 Tensorflow 执行此操作的正确方法是什么?现在我正在使用tf.image.resize_images()
这扭曲了图像,我想摆脱它。
听上去像crop_to_bounding_box https://www.tensorflow.org/api_docs/python/tf/image/crop_to_bounding_box正在做你需要的事情:
import tensorflow as tf
def crop_center(image):
h, w = image.shape[-3], image.shape[-2]
if h > w:
cropped_image = tf.image.crop_to_bounding_box(image, (h - w) // 2, 0, w, w)
else:
cropped_image = tf.image.crop_to_bounding_box(image, 0, (w - h) // 2, h, h)
return tf.image.resize_images(cropped_image, (100, 100))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)