如何通过添加错位从单个图像生成图像突发?
Posted
技术标签:
【中文标题】如何通过添加错位从单个图像生成图像突发?【英文标题】:How to generate burst of images from a single image by adding misalignment? 【发布时间】:2019-09-16 18:55:45 【问题描述】:我正在学习图像去噪和 Pytorch。我想获得从单个图像生成的图像突发。例如,我有一张图像,然后从中随机裁剪出特定大小的补丁。然后我想在它上面添加一个 1 或 2 个像素的偏移来获得一个差异很小的新图像。我能做什么?在 PIL 中使用某些技术还是其他技术更好?
【问题讨论】:
Data Augmentation in PyTorch的可能重复 我已经考虑过了,但似乎很难将错位限制在 1 或 2 个像素。换句话说,我希望第一个作物位置是随机的,但下一个作物靠近第一个作物。我不知道 Pytorch 中的增强功能如何做到这一点。 【参考方案1】:您应该使用transforms
为您的问题做一些图像增强。
当我阅读您的评论时,您可以限制 translate = (a, b)
在两个维度上进行一些微小的随机移动。
import torchvision.transforms as transforms
transform = transforms.RandomAffine(degrees, translate=None, scale=None, shear=None, resample=False, fillcolor=0)
img = PIL.Image.open('path/img')
new_img = transform(img)
如果您还想执行更多转换,例如Crop
,请将所有transform
分组为一个大transform
,使用transforms.Compose
。这是你的reference
【讨论】:
我不能限制 translate = (2, 2)。它会出现错误“valueError 应该在 0 和 1 之间” 我只是将答案(我的错误)编辑为translate = (a, b)
,因为文档显示-img_width * a < dx < img_width * a
。因此,您可以计算 a = some value
以匹配 dx = 2 pixels
,与 dy
相同。
我很困惑为什么 a、b 应该与 img_width 或 height 相乘。如果-img_width
以上是关于如何通过添加错位从单个图像生成图像突发?的主要内容,如果未能解决你的问题,请参考以下文章