You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyTorch中如何对两张图像执行相同的随机裁剪变换?

实现两张图像的相同随机裁剪(无需自定义函数)

当然可以不用编写自定义函数!PyTorch的torchvision.transforms模块已经提供了现成工具,能让你轻松对两张图像执行完全一致的随机裁剪操作,核心就是先固定随机裁剪的参数,再把这个参数统一应用到两张图像上。

具体步骤如下:

  • 首先导入需要的模块:

    import torchvision.transforms as transforms
    from PIL import Image  # 假设你用PIL加载图像
    
  • 初始化随机裁剪的变换实例,指定你需要的裁剪尺寸:

    # 示例为裁剪成224x224的尺寸,可替换为你需要的大小
    crop_transform = transforms.RandomCrop(size=(224, 224))
    
  • 加载你的两张图像(假设已加载为PIL Image对象img1和img2),然后获取随机裁剪的参数:

    # 从其中一张图像获取裁剪的参数(top, left, height, width)
    crop_params = crop_transform.get_params(img1, output_size=(224, 224))
    
  • 最后用固定参数对两张图像分别执行裁剪:

    img1_cropped = transforms.functional.crop(img1, *crop_params)
    img2_cropped = transforms.functional.crop(img2, *crop_params)
    

这样处理后,img1_cropped和img2_cropped会是从两张原图相同位置裁剪出的结果,完美实现了一致的随机裁剪。

这个思路也适用于其他需要同步的随机变换(比如你已经实现的水平翻转):先通过变换类的get_params方法拿到随机参数,再用transforms.functional下的对应函数统一应用参数,就能避免每次调用变换时生成新的随机值。

内容的提问来源于stack exchange,提问作者Joy Mazumder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 07:07:27