iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >pytorch transforms图像增强怎么实现
  • 459
分享到

pytorch transforms图像增强怎么实现

2023-07-05 22:07:00 459人浏览 泡泡鱼
摘要

这篇文章主要介绍“PyTorch transfORMs图像增强怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“pytorch transforms图像增强怎么实现”文章能帮

这篇文章主要介绍“PyTorch transfORMs图像增强怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“pytorch transforms图像增强怎么实现”文章能帮助大家解决问题。

    一、前言

    本文基于的是pytorch3.7.1

    二、图像处理

    深度学习是由数据驱动的,而数据的数量和分布对于模型的优劣具有决定性作用,所以我们需要对数据进行一定的预处理以及数据增强,用于提升模型的泛化能力。

    一般来说深度学习神经网络训练前都需要做数据增强 (Data Augmentation) 又称为数据增广、数据扩增,它是对 训练集 进行变换,使训练集更丰富,从而让模型更具 泛化能力

    下面为常见的图像变换

    1.原始图片

    显示图片,并读取图片大小

    from torchvision import transformsfrom PIL import Image # 用于读取图片import  matplotlib.pyplot as plt # 用于显示图片image_path = './dog.jpg'image = Image.open(image_path)plt.imshow(image)print(image.size)plt.show()

    2.调整图片大小transforms.Resize

    2.1.transforms.Resize(x)

    主要用于调整PILImage对象的尺寸大小,图片短边缩放至x,长宽比保持不变

    将图片短边缩放至x,长宽比保持不变,上述图片执行transforms.Resize(300)

    from torchvision import transformsfrom PIL import Image # 用于读取图片import  matplotlib.pyplot as plt # 用于显示图片# 图片显示,打印图片大小image_path = './dog.jpg'image = Image.open(image_path)resize = transforms.Resize(300)image1 = resize(image)plt.imshow(image1)print(image1.size)plt.show()
    2.2.transforms.Resize([x, y])

    同时指定图片长宽,这样会改变长宽比例但是不是裁剪,可以恢复

    from torchvision import transformsfrom PIL import Image # 用于读取图片import  matplotlib.pyplot as plt # 用于显示图片# 图片显示,打印图片大小image_path = './dog.jpg'image = Image.open(image_path)resize = transforms.Resize([512, 300])image1 = resize(image)plt.imshow(image1)print(image1.size)plt.show()
    2.3关于图片的恢复

    测试代码

    from torchvision import transformsfrom PIL import Image # 用于读取图片import  matplotlib.pyplot as plt # 用于显示图片# 图片显示,打印图片大小image_path = './dog.jpg'image = Image.open(image_path)w, h = image.sizeresize = transforms.Resize([512, 300])image1 = resize(image)resize2 = transforms.Resize([h, w])image2 = resize2(image1)plt.imshow(image2)print(image2.size)plt.show()

    注意这里要使用transforms.Resize([h, w])

    3.图片裁剪

    3.1中心裁剪transforms.CenterCrop

    作用:中心裁剪图片

    主要参数:size,表示需要裁剪的图片大小

    代码示例:

    from torchvision import transformsfrom PIL import Imageimport matplotlib.pyplot as plttransform = transforms.CenterCrop(512)image_path= "./dog.jpg"image = Image.open(image_path)image1 = transform(image)plt.imshow(image1)print(image1.size)plt.show()image1.save('./dog_clipping.jpg')
    3.2随机裁剪transforms.RandomCrop(size,padding=None,pad_if_needed=False,fill=0,padding_mode='constant')

    主要参数:

    size:为需要裁剪的图片大小

    padding:设置填充大小

    大小为a:表示上下左右都填充a个元素

    大小为(a, b):表示左右填充a个元素,上下填充b个元素

    大小为(a, b, c, d):表示左上右下填充a, b, c, d个元素

    pad_if_needed:若图像小于设定 size,则填充,此时该项需要设置为 True

    padding_mode:填充模式,主要有四种

    • constant:像素值由 fill 设定。

    • edge:像素值由图像边缘像素决定。

    • reflect:镜像填充,最后一个像素不镜像,例如 [1, 2, 3, 4] → [3, 2, 1, 2, 3, 4, 3, 2]。

    • symmetric:镜像填充,最后一个像素镜像,例如 [1, 2, 3, 4] → [2, 1, 1, 2, 3, 4, 4, 3]。

    fill:当填充模式为padding_mode的填充值

    代码示例:

     from torchvision import transformsimport matplotlib.pyplot as pltfrom PIL import Imagetransform = transforms.RandomCrop(size=(512, 512), padding=50, pad_if_needed=True, fill=0,padding_mode="constant")image_path = "./dog.jpg"image = Image.open(image_path)random_crop_image = transform(image)print(random_crop_image.size)plt.imshow(random_crop_image)plt.show()random_crop_image.save("./random_crop_image.jpg")
    3.3transforms.RandomResizedCrop

    RandomResizedCrop(size,scale=(0.08,1.0),ratio=(3/4,4/3),interpolation)

    将给定图像随机裁剪为不同的大小和宽高比,然后缩放所裁剪得到的图像为制定的大小;

    主要参数:

    size:为最终图片要resize的大小

    scale:为随机采样最少要覆盖原图的比例,在resize前

    ratio:为随机采样宽高的比例,也在resize前

    interpolation:插值方法

    代码示例:

    from torchvision import transformsimport matplotlib.pyplot as pltfrom PIL import Imagetransform = transforms.RandomResizedCrop(size=(256, 256),                                         scale=(0.08, 1),                                         ratio=(3/ 4, 4/3),                                         interpolation=Image.NEAREST)image_path = "./dog.jpg"image = Image.open(image_path)random_resize_crop_image = transform(image)print(random_resize_crop_image.size)plt.imshow(random_resize_crop_image)plt.show()random_resize_crop_image.save("./dog_random_resize_crop.jpg")

    4.图片翻转与旋转

    4.1.transforms.RandomHorizontalFlip(p=0.5)水平翻转

    p为旋转的概率

    代码示例:

    from torchvision import transformsimport matplotlib.pyplot as pltfrom PIL import Imagetransform = transforms.RandomHorizontalFlip(p=0.7)image_path = "./dog.jpg"image = Image.open(image_path)RandomHorizontalFlip_image = transform(image)print(RandomHorizontalFlip_image.size)plt.imshow(RandomHorizontalFlip_image)plt.show()RandomHorizontalFlip_image.save("./RandomHorizontalFlip_image.jpg")
    4.2transforms.RandomVerticalFlip垂直翻转

    代码示例

    from torchvision import transformsimport matplotlib.pyplot as pltfrom PIL import Imagetransform = transforms.RandomVerticalFlip(p=0.8)image_path = "./dog.jpg"image = Image.open(image_path)RandomVerticalFlip_image = transform(image)print(RandomVerticalFlip_image.size)plt.imshow(RandomVerticalFlip_image)plt.show()RandomVerticalFlip_image.save("./RandomVerticalFlip_image.jpg")
    4.3旋转transforms.RandomRotation
    RandomRotation(degrees,resample=False,expand=False,center=None)

    主要参数:

    • degrees:旋转角度。

            当为 a 时,在 (-a, a) 之间随机选择旋转角度。

            当为 (a, b) 时,在 (a, b) 之间随机选择旋转角度。

    • resample:重采样方法。

    • expand:是否扩大图片,以保持原图信息。

    • center:旋转点设置,默认中心旋转

    代码示例:

    from torchvision import transformsimport matplotlib.pyplot as pltfrom PIL import Imagetransform = transforms.RandomRotation(degrees=90,resample=False, expand=True, center=None, fill=0)image_path = "./dog.jpg"image = Image.open(image_path)RandomRotation_image = transform(image)print(RandomRotation_image.size)plt.imshow(RandomRotation_image)plt.show()RandomRotation_image.save("./RandomRotation_image.jpg")

    关于“pytorch transforms图像增强怎么实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

    --结束END--

    本文标题: pytorch transforms图像增强怎么实现

    本文链接: https://www.lsjlt.com/news/355671.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • pytorch transforms图像增强怎么实现
      这篇文章主要介绍“pytorch transforms图像增强怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“pytorch transforms图像增强怎么实现”文章能帮...
      99+
      2023-07-05
    • pytorch transforms图像增强实现方法
      目录一、前言二、图像处理下面为常见的图像变换1.原始图片2.调整图片大小transforms.Resize2.1.transforms.Resize(x)2.2.transforms...
      99+
      2023-05-14
      pytorch 图像增强 pytorch transforms图像增强 pytorch transforms
    • Python实现图像增强
      本文实例为大家分享了Python实现图像增强的具体代码,供大家参考,具体内容如下 题目描述:对于下面这幅图像(图 1),请问可以通过那些图像增强的手段,达到改善视觉效果的目的?请显示...
      99+
      2022-11-11
    • Pytorch中的图像增广transforms类和预处理方法是什么
      这篇文章主要讲解了“Pytorch中的图像增广transforms类和预处理方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Pytorch中的图像增广transforms类和预处理方...
      99+
      2023-07-05
    • python实现图像增强算法
      本文实例为大家分享了python实现图像增强算法的具体代码,供大家参考,具体内容如下 图像增强算法,图像锐化算法 1)基于直方图均衡化 2)基于拉普拉斯算子 3)基于对数变换 4)基...
      99+
      2022-11-11
    • PyTorch怎么实现图像识别
      这篇文章主要介绍“PyTorch怎么实现图像识别”,在日常操作中,相信很多人在PyTorch怎么实现图像识别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PyTorch怎么实现图像识别”的疑惑有所帮助!接下来...
      99+
      2023-06-29
    • 如何使用OpenCV实现图像增强
      本篇内容介绍了“如何使用OpenCV实现图像增强”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!本期将介绍如何通过图像处理从低分辨率/模糊/低...
      99+
      2023-06-20
    • Python OpenCV实现图像增强操作详解
      目录创作背景图像亮度增强和降低旋转水平镜像和垂直镜像高斯噪声其它图像增强的方法创作背景 最近在忙着两个YOLOv7项目,通过看大量的论文,发现很多的相关的论文都会在收集图像后进行图像...
      99+
      2022-11-11
    • 怎么利用PyTorch实现图像识别
      这篇文章主要介绍“怎么利用PyTorch实现图像识别”,在日常操作中,相信很多人在怎么利用PyTorch实现图像识别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么利用PyTorch实现图像识别”的疑惑有所...
      99+
      2023-07-05
    • 详解Python实现图像分割增强的两种方法
      方法一 import random import numpy as np from PIL import Image, ImageOps, ImageFilter from skim...
      99+
      2022-11-13
    • Python基于域相关实现图像增强的方法是什么
      这篇文章主要讲解了“Python基于域相关实现图像增强的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python基于域相关实现图像增强的方法是什么”吧!介绍当在图像上训练深度神经...
      99+
      2023-06-26
    • Python基于域相关实现图像增强的方法教程
      目录介绍昆虫增强使用针的增强实验结果介绍 当在图像上训练深度神经网络模型时,通过对由数据增强生成的更多图像进行训练,可以使模型更好地泛化。常用的增强包括水平和垂直翻转/移位、以一定角...
      99+
      2022-11-12
    • Python怎么实现视频画质增强
      本文小编为大家详细介绍“Python怎么实现视频画质增强”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python怎么实现视频画质增强”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。原理不知道大家小时候有没有玩过...
      99+
      2023-06-30
    • SQL Server中怎么实现约束增强
      SQL Server中怎么实现约束增强,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在许多情况下,对外键使用更复杂的逻辑表达式是非常有用的。 ...
      99+
      2022-10-18
    • OpenCV图像算法怎么实现图像切分图像合并
      本篇内容介绍了“OpenCV图像算法怎么实现图像切分图像合并”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!将一张图片切分成多个小图片并将小图...
      99+
      2023-06-30
    • Pytorch之8层神经网络怎么实现Cifar-10图像分类验证
      这篇文章主要讲解了“Pytorch之8层神经网络怎么实现Cifar-10图像分类验证”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Pytorch之8层神经网络怎么实现Cifar-10图像分类...
      99+
      2023-07-05
    • 怎么实现复制图像
      这篇文章主要讲解了“怎么实现复制图像”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么实现复制图像”吧!在写了 这个 29.7 K 的剪贴板 JS 库有点东...
      99+
      2022-10-19
    • Python怎么实现图像分割
      本篇内容介绍了“Python怎么实现图像分割”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!方法一import randomimpo...
      99+
      2023-06-29
    • python opencv图像旋转怎么实现
      要在Python中使用OpenCV实现图像旋转,可以使用OpenCV中的getRotationMatrix2D和warpAffine...
      99+
      2023-10-21
      python
    • Java数字图像处理之图像灰度处理怎么实现
      本篇内容介绍了“Java数字图像处理之图像灰度处理怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、简介图像灰度化处理可以作为图像处...
      99+
      2023-07-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作