图片数据增强-resize(不同插值)、各种模糊

PyTorch图像Resize操作全解析:从插值算法到实战避坑指南 在计算机视觉任务中,图像预处理是模型训练与部署的关键环节,其中图像缩放(Resize)作为基础且核心的操作,直接影响模型输入数据的质量与特征分布。其原理是通过插值算法计算新像素值,常见方法包括最近邻、双线性、双三次和兰索斯插值,各自在速度、平滑度与细节保留上有所权衡。正确的Resize技术能确保输入尺寸统一、特征对齐,对模型性能与泛化能力至关重要。在PyTorch实践中,需根据任务场景(如图像分类、目标检测、语义分割)选择尺寸参数与插值方式,并注意张量维度、变换顺序等工程细节。本文聚焦torchvision 阅读详情

将图片批量进行不同的数据增强处理,并保存到不同的文件夹下。

各种不同的模糊处理

import os
import cv2


def apply_blur_to_images(input_folder_path, output_folder_path):
    # 遍历文件夹下的所有文件
    for filename in os.listdir(input_folder_path):
        # 检查文件类型是否为图片
        if filename.endswith('.jpg') or filename.endswith('.jpeg') or filename.endswith('.png'):
            # 构建输入图片的完整路径
            input_image_path = os.path.join(input_folder_path, filename)

            # 读取图片
            image = cv2.imread(input_image_path)

            # 根据不同的模糊方法进行处理
            for blur_method in ['gaussian', 'mean', 'median', 'bilateral']:
                # 创建对应的模糊文件夹
                output_blur_folder_path = os.path.join(output_folder_path, blur_method)
                os.makedirs(output_blur_folder_path, exist_ok=True)

                # 根据选择的模糊方法进行处理
                if blur_method == 'mean':
                    blurred_image = cv2.blur(image, (15, 15))
                elif blur_method == 'median':
                    blurred_image = cv2.medianBlur(image, 15)
                elif blur_method == 'bilateral':
                    blurred_image = cv2.bilateralFilter(image, 15, 75, 75)
                else:
                    blurred_image = cv2.GaussianBlur(image, (15, 15), 0)

                # 构建输出图片的完整路径
                output_image_path = os.path.join(output_blur_folder_path, filename)

                # 保存模糊处理后的图片
                cv2.imwrite(output_image_path, blurred_image)


if __name__ == '__main__':
    # 文件夹不要有中文!!!!!!!!!
    # 输入文件夹路径
    input_folder_path = './data'
    # 输出文件夹路径
    output_folder_path = './output'

    # 调用函数
    apply_blur_to_images(input_folder_path, output_folder_path)

resize 下采样

import os
import cv2


def reduce_resolution(input_folder_path, output_folder_path, scale_factor, interpolation):
    # 遍历文件夹下的所有文件
    for filename in os.listdir(input_folder_path):
        # 检查文件类型是否为图片
        if filename.endswith('.jpg') or filename.endswith('.jpeg') or filename.endswith('.png'):
            # 构建输入图片的完整路径
            input_image_path = os.path.join(input_folder_path, filename)

            # 读取图片
            image = cv2.imread(input_image_path)

            # 计算目标宽度和高度
            target_width = int(image.shape[1] * scale_factor)
            target_height = int(image.shape[0] * scale_factor)

            # 调整图像尺寸
            resized_image = cv2.resize(image, (target_width, target_height), interpolation=interpolation)

            # 构建输出图片的完整路径
            interpolation_name = get_interpolation_name(interpolation)
            output_folder = os.path.join(output_folder_path, interpolation_name)
            os.makedirs(output_folder, exist_ok=True)  # 创建输出文件夹(如果不存在)
            output_image_path = os.path.join(output_folder, filename)

            # 保存调整尺寸后的图片
            cv2.imwrite(output_image_path, resized_image)


def get_interpolation_name(interpolation):
    if interpolation == cv2.INTER_NEAREST:
        return 'INTER_NEAREST'
    elif interpolation == cv2.INTER_LINEAR:
        return 'INTER_LINEAR'
    elif interpolation == cv2.INTER_CUBIC:
        return 'INTER_CUBIC'
    elif interpolation == cv2.INTER_LANCZOS4:
        return 'INTER_LANCZOS4'
    else:
        return 'UNKNOWN'


if __name__ == '__main__':
    # 文件夹不要有中文!!!!!!!!!
    # 输入文件夹路径
    input_folder_path = './data'
    # 输出文件夹路径
    output_folder_path = './output'

    # 比例系数
    scale_factor = 0.5  # 调整为原始图像的一半

    # 插值方法列表
    interpolations = [cv2.INTER_NEAREST, cv2.INTER_LINEAR, cv2.INTER_CUBIC, cv2.INTER_LANCZOS4]

    # 遍历插值方法
    for interpolation in interpolations:
        # 调用函数进行图像尺寸调整
        reduce_resolution(input_folder_path, output_folder_path, scale_factor, interpolation)

遍历文件夹,结果以名字命令,方便区分
在这里插入图片描述

OpenCV图像缩放避坑指南:为什么你的cv2.resize()结果总模糊?可能是fx/fy和dsize用混了 本文详细解析了OpenCV中`cv2.resize()`函数的常见误区,特别是`dsize`和`fx/fy`参数的混淆使用导致的图像模糊问题。通过实际代码示例,介绍了如何根据业务需求选择正确的缩放策略和插值方法,帮助开发者优化图像处理流程,提升电商图片等场景的处理效果。 阅读详情

相关推荐

PyTorch transforms.Resize() 深度解析:从图像缩放原理到多场景应用实践

在计算机视觉任务中,图像预处理是模型训练与部署的基础环节,其核心目标是将原始图像数据转换为适合模型输入的标准化格式。图像缩放作为预处理的关键步骤,其原理在于通过插值算法在像素矩阵间进行重采样,以改变图像的尺寸。不同的插值方法(如最近邻、双线性、双三次)在计算效率与输出质量上存在权衡,正确的选择直接影响后续特征提取的精度。从技术价值看,高质量的图像缩放不仅能提升模型的视觉输入质量,还能在目标检测、图像分割等任务中保持物体的几何特性,避免因不当变形导致的性能下降。在应用场景上,图像分类通常需要固定尺寸输入,目标

weixin_33139275的博客 313

PyTorch transforms.Resize() 深度解析:从原理到实战的完整指南

在计算机视觉任务中,图像预处理是连接原始数据与模型训练的关键桥梁,其核心目标是将尺寸各异的输入图像标准化为模型所需的固定格式。这一过程不仅关乎数据管道的构建效率,更直接影响模型的收敛速度与最终精度。其基本原理是通过图像重采样算法,在改变图像空间分辨率的同时,尽可能保留或合理重构视觉信息。从技术价值看,高效的尺寸变换能显著降低计算开销、统一批量输入,并为后续的数据增强操作奠定基础。在应用场景上,无论是图像分类、目标检测还是语义分割,都需要根据任务特性定制不同的缩放与填充策略。本文聚焦于 PyTorch 中 `

weixin_29051149的博客 287

OpenCV vs PIL resize 抗锯齿对比:5种插值算法在4K图像缩小时的性能与效果实测

本文深度评测了OpenCV与PIL在4K图像缩放中的抗锯齿效果,对比了5种插值算法的性能与视觉质量。通过实验数据展示不同算法在边缘平滑度、处理时间和内存占用等方面的表现,为图像处理场景提供实用建议,帮助开发者选择最优的缩放策略。

weixin_30892763的博客 302

【Python】进阶学习:一文掌握resize方法,轻松调整图像大小

在本文中,我们学习了如何使用Pillow库中的resize方法来调整图像的大小。我们讨论了如何加载图像、计算缩放因子以保持宽高比,以及保存调整大小后的图像。通过掌握这些基础知识,你可以轻松地对图像进行缩放以适应不同的需求。希望这篇文章对你有所帮助,让你在Python图像处理方面更进一步!spm=1001.2014.3001.5502)🤝 期待与你共同进步你的支持是我们前行的最大动力!🙏🌐 在这茫茫网海中,有你的关注,我们深感荣幸。🌟📚 我们会继续努力,为你呈现更多精彩和有深度的内容。

m0_59236127的博客 5974

PyTorch RandomResizedCrop:数据增强核心原理与实战调优指南

数据增强是提升深度学习模型泛化能力的关键技术,通过在训练过程中对输入数据进行随机变换,模拟现实世界中的多样性,从而防止模型过拟合。其核心原理在于引入可控的随机扰动,如几何变换和颜色抖动,以扩充有效训练样本,让模型学习到更鲁棒的特征表示。这一技术在计算机视觉领域具有重要价值,广泛应用于图像分类、目标检测和自监督学习等场景。其中,RandomResizedCrop作为几何增强的基石操作,通过随机裁剪与缩放,能有效缓解模型对物体位置和尺度的敏感度。本文深入解析其scale与ratio参数对模型正则化的影响,并结合

weixin_30791095的博客 384

用Python和NumPy搞定复合材料层合板ABD矩阵计算(附完整代码与避坑指南)

本文详细介绍了如何使用Python和NumPy高效计算复合材料层合板的ABD刚度矩阵,包括单层板刚度计算、偏轴转换和层合板刚度集成。通过完整的代码示例和工程实践技巧,帮助工程师快速构建定制化分析工具,解决航空航天、汽车制造等领域的复合材料力学性能分析问题。特别提供了避坑指南和性能优化策略,确保计算结果的准确性和效率。

weixin_30752699的博客 277

Python-resize(批量放大缩小图像,修改图像的尺寸)

interpolation 选项所用的插值方法: INTER_NEAREST 最近邻插值 INTER_LINEAR 双线性插值(默认设置) INTER_AREA 使用像素区域关系进行重采样。 INTER_CUBIC 4x4像素邻域的双三次插值...

秀呀秀的博客 1万+

深入浅出ISP:用RKISP2.x Tuner工具理解AWB、AE、HDR等核心模块的实战调参

本文深入解析RKISP2.x Tuner工具在ISP图像处理中的实战应用,重点探讨AWB、AE、HDR等核心模块的调参技巧。通过环境搭建、调试工具使用和实际案例,帮助开发者掌握如何在不同光照条件下优化图像质量,实现精准的白平衡、曝光控制和动态范围处理。

weixin_26802933的博客 487

使用PIL时遇到的图片质量问题

resize()图片质量PIL(python image lib)是一个优秀的python图像处理库,但我在用PIL的resize()功能之后发现图片的质量远远不如原图: 如图所示,resize之后图片的质量远不如原图。经过一番搜索后发现需要开启resize函数的抗锯齿功能。 调用方法为:pic = pic.resize(box, Image.ANTIALIAS),即用抗锯齿模式缩放原图。

前进,前进,前进! 5763

标准化降水指数介绍

Mckee et al.(1993)认为降水量的减少是导致干旱的主要因素,其他气候因子一般变化较小,对干旱产生的影响不大,因此SPI使用降水量作为唯一参数。SPI能较好表达因降水量的大小反映干旱状况,操作简单,所需资料仅为降水量,同时该干旱指数在各个地区和各个时段都具有良好的计算稳定性,是继PDSI之后另一种被广泛应用的干旱指数。𝐻(𝑥)是Γ分布求得的概率,并当𝐻(𝑥)>0.5时,S=1;式中,𝛼是形状参数,𝛽是尺度参数,𝑥是当月降水量,𝛤(𝛼)是Gamma函数,用极大似然估计法计算最佳的𝛼和𝛽,即。

weixin_44259522的博客 2857

MobaXterm结合SSH密钥对安全连接阿里云ECS的实战教程

本文详细介绍了如何使用MobaXterm结合SSH密钥对安全连接阿里云ECS的实战教程。通过对比传统密码登录的风险,重点讲解了密钥对的生成与配置、阿里云控制台的密钥绑定技巧,以及MobaXterm的高级设置和故障排查方法,帮助用户实现高效、安全的远程连接。

weixin_29208327的博客 466

(转载)Jvm工作原理学习笔记

一、        JVM的生命周期 1.      JVM实例相应了一个独立执行的java程序它是进程级别 a)    启动。启动一个Java程序时。一个JVM实例就产生了。不论什么一个拥有public static void main(String[] args)函数的class都能够作为JVM实例执行的起点 b)    执行。main()作为该程序初始线程的起点,不论什么其...

weixin_34375054的博客 128

【代码审计】RuoYi定时任务漏洞:从SQL注入到RCE的攻防演变

本文深入剖析了RuoYi框架定时任务模块从早期版本无校验到引入黑白名单机制,再到被组合利用实现RCE的完整漏洞演变过程。文章详细分析了SQL注入与定时任务功能结合导致的远程代码执行漏洞,并总结了代码审计与安全开发的核心要点,为开发者提供了重要的安全参考。

yellow的专栏 699

图像使用resize()缩小并重新恢复原始大小质量变化

目录 实验目标 代码实现 导入CV库 载入实验图像 创建显示窗口 图像缩放 实验结论 实验目标 使用基于python3.8.5下的Opencv库对一幅图像进行缩放,比较缩放前后图像质量差异。 代码实现 导入CV库 import cv2 as cv 载入实验图像 original_img = cv.imread("../Project/images/test.jpg") 要注意这里要使用斜线 "/" 而不是反斜线 "\" 。 创建显示窗口 cv.namedWin..

8154

openclaw-cn : 无法将“openclaw-cn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称 解决方案

本文主要介绍了openclaw-cn : 无法将“openclaw-cn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称解决方案,希望能对使用openclaw-cn的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 10万+

GB28181 —— 1、Ubuntu20.04下使用ZLMediaKit+WVP搭建GB28181流媒体监控平台(连接带云台摄像机)

GB28181 —— Ubuntu20.04下使用ZLMediaKit+WVP搭建GB28181流媒体监控平台

5461

线性插值改变图像尺寸_图像数据增强的方法合集

数据增强是在有限数据集上进行人工扩张产生更多等价的数据。它能有效弥补现有训练数据的不足,防止模型出现过拟合现象,增强模型的泛化能力。 数据增强和其防止过拟合的方法的区别: 1. dropout,正则化等等方法限制了模型参数分布,用于减少过拟合。改变了模型结构或者模型空间,降低模型复杂度。 2. 数据增强没有降低网络的复杂度,也不增加计算复杂度和调参工程量,是隐式的规整化方法。实际应用中更有意义,...

weixin_39684454的博客 863

Simulink中搭建一个包含PID控制的压电陶瓷快反镜模型

这个模型只是一个基本框架,你需要根据实际的系统参数和要求进行调整和优化。希望这些步骤能帮助你在Simulink中搭建所需的模型。

AI的内部世界的博客 474

别再只会用cv2.resize()了!OpenCV图像缩放的5个实战场景与插值选择指南

本文深入探讨了OpenCV图像缩放的5个实战场景与插值选择指南,帮助开发者优化图像处理效果。从目标检测数据增强到UI界面适配,再到医学影像处理和游戏素材优化,详细解析了不同场景下最合适的插值方法(如INTER_LINEAR、INTER_AREA等),并提供了实用的代码示例,助力提升图像缩放质量和效率。

weixin_30352191的博客 338

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

实战指南:利用imgaug进行目标检测任务的图像数据增强

针对目标检测任务,使用imgaug进行图像数据增强

weixin_44505813的博客 2965

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

c++图像拼接加权融合_图像数据增强的方法合集

数据增强是在有限数据集上进行人工扩张产生更多等价的数据。它能有效弥补现有训练数据的不足,防止模型出现过拟合现象,增强模型的泛化能力。 数据增强和其防止过拟合的方法的区别: 1. dropout,正则化等等方法限制了模型参数分布,用于减少过拟合。改变了模型结构或者模型空间,降低模型复杂度。 2. 数据增强没有降低网络的复杂度,也不增加计算复杂度和调参工程量,是隐式的规整化方法。实际应用中更有意义,...

weixin_39984105的博客 863

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

OpenCV图像几何变换核心函数详解:resize、rotate、flip与transpose实战指南

图像几何变换是计算机视觉与图像处理的基础操作,其核心原理是通过数学映射改变像素的空间位置。在技术实现上,不同的插值算法(如最近邻、双线性、双三次)决定了变换后图像的质量与计算效率,这直接关系到下游任务(如模型训练、特征提取)的准确性。从工程实践角度看,几何变换在数据增强、输入标准化、图像校正等场景中具有重要价值。本文聚焦于OpenCV中的核心几何变换函数,深入剖析cv2.resize的插值算法选型、cv2.rotate的快速旋转实现,并结合cv2.flip与cv2.transpose,系统讲解如何避免常见陷

weixin_29029995的博客 244

PyTorch RandomResizedCrop数据增强:从参数原理到实战调优

数据增强是提升深度学习模型泛化能力的关键技术,通过在训练过程中对输入数据进行随机变换,模拟现实世界的多样性,从而让模型学习到更鲁棒的特征表示。其核心原理是通过引入可控的随机性,如空间位置、尺度、长宽比等变化,防止模型过拟合于训练数据的特定模式。在计算机视觉任务中,尺度与位置不变性是模型泛化的基础能力,而随机裁剪与缩放正是实现这一目标的核心技术手段。PyTorch的RandomResizedCrop作为torchvision.transforms中的基础组件,通过scale参数控制裁剪区域面积比、ratio参

weixin_34242509的博客 358

深度学习数据增强实战:从原理到Albumentations高效实现

数据增强是深度学习中提升模型泛化能力、防止过拟合的核心技术。其原理是通过对训练数据施加一系列保持语义不变的随机变换,如旋转、裁剪、色彩调整等,来模拟现实世界的数据多样性,从而让模型学习到更本质的特征而非记忆特定样本。这项技术的核心价值在于,它能以极低的成本有效扩充数据集,尤其对于数据稀缺或标注成本高的场景至关重要,是计算机视觉、自然语言处理等领域模型训练的基础环节。在工程实践中,高效的增强流水线构建是关键,这涉及到工具选型、标注同步处理以及策略调优。以图像任务为例,Albumentations库因其极快的速

weixin_34355559的博客 384

【OpenCV】Python图像处理之图像预处理

本文介绍了Python中常用的图像预处理技术,包括图像读取、尺寸调整、归一化、噪声去除和增强等操作。详细讲解了使用OpenCV、PIL/Pillow等库实现各项预处理的方法,如BGR转RGB格式转换、双线性插值调整尺寸、高斯/中值/双边滤波去噪、直方图均衡化增强对比度等。文章还涵盖了图像格式转换和数据增强技术,并针对不同计算机视觉任务(分类、检测、医学图像)给出了预处理建议。这些基础步骤对于统一数据格式、消除干扰和增强特征至关重要,是计算机视觉任务的重要前提。

棒棒的皮皮 2315
上一篇: 基于yolov8、yolov5的动物检测系统(含UI界面、训练好的模型、Python代码、数据集)
下一篇: python opencv 绘制矩形、圆、线、多边形
Python图像识别-1
博客等级 码龄2年 1010粉丝 199原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值