如何通过添加错位从单个图像生成图像突发?

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

以上是关于如何通过添加错位从单个图像生成图像突发?的主要内容,如果未能解决你的问题,请参考以下文章

将元素添加到 python 生成器

如何在 XCode 的界面生成器中添加图像?

在 ffmpeg 中从单个图像创建特定持续时间的视频

如何使用图像视图从图像数组中创建随机图像生成器?

如何在运行时即时从文本生成图像

如何快速从文件夹中获取随机图像?