我有一些图像,其中一些高度〉=宽度,而另一些高度〈宽度。我想将图像调整为固定的高度,同时保持宽高比。我已经尝试使用torchvision.transforms.Resize(Documentation),然而,我遇到了一个问题,我不知道如何使用库函数解决。
我有两种可能性,我可以提供两个int,表示输出的大小,或者一个int,表示调整大小后输出图像的SMALLEST边的大小。
例如:image1是64x200(HxW),而image2是200x64。使用resize(32,..)(image)调整大小将产生大小为32x100的out_image1和大小为100x32的out_image2。然而,我希望第二个图像是32x10。
那么,我如何指定一个特定的尺寸,这是要缩放到我指定的大小,而另一个总是隐式地重新缩放,同时保持纵横比?
编辑:所以我基本上解决了它,它需要我做一个Resize的新示例,给它两个int并需要我手动计算新的宽度,如果有更优雅的解决方案已经实现我仍然想知道。必须反复示例化Resize,这使我无法将转换作为组合传递给Dataset类。相反,我必须在Dataset * 中实现resize转换getitem* 函数,这使得它不太灵活,直接将我的数据集交给组合转换。
1条答案
按热度按时间gab6jxml1#
你可以使用一个自定义的转换,它根据图像的长宽比来调整图像的大小。2这个转换采用一个固定的高度值,并调整输入图像的大小。3这是一个你应该如何进行的大致模式。
接下来,您可以使用它来调整输入图像的大小,使其具有32的固定高度,同时保持纵横比。