图像大小调整(缩放)

尺寸调整前尺寸调整前

1、背景介绍

      在深度学习中,将图像调整到固定尺寸(如28x28像素)的操作是非常常见的,尤其是在处理诸如图像分类、物体检测和图像分割等任务时。这种操作有几个重要原因:

  1. 标准化输入:许多深度学习模型都是为特定输入尺寸设计的。将所有图像调整到相同的尺寸可以确保每个输入都被以相同的方式处理,这有助于模型的训练和预测。

  2. 批量处理:在深度学习中,通常会使用批处理技术来同时处理多个输入。固定尺寸的图像可以更容易地与批量大小对齐,从而提高计算效率。

  3. 网络架构的假设:一些网络架构(如LeNet、AlexNet等)假设输入图像具有特定的尺寸。如果输入图像的大小不一致,网络可能无法正确地处理它们。

  4. 计算效率:固定尺寸的图像可以简化模型的设计,使得网络层(如卷积层和池化层)的参数数量减少,从而提高计算效率。

  5. 数据增强:在训练过程中,可以对调整后的图像应用数据增强技术,如随机裁剪、旋转、缩放等,以增加训练数据的多样性,从而提高模型的泛化能力。

  6. 输入层的大小:大多数深度学习框架(如TensorFlow和PyTorch)的输入层(如tf.placeholdertorch.autograd.Variable)需要知道输入数据的尺寸。固定尺寸的图像可以确保输入层正确地设置其形状。

       如下图所示,人工制作的一张图片,像素为71*70,与常用模型固定尺寸存在差异,如28*28,需要处理,要达到如下效果。

71*7028*28


2、图像尺寸调整

      本次介绍2种场景下图像尺寸调整,分别为单张图片调整、批量图像尺寸调整。

2.1 单张图像尺寸调整

      单张图像调整,即只对一张图像尺寸调整,代码如下。如下所示,将0.jpg的图片,调整为大小为28*28的图像,使用函数resize()函数。

from PIL import Image

#单独图片进行裁切处理
# 读取图片
image_path = '0.jpg'  # 替换为你的图片路径
image = Image.open(image_path)

# 调整图片大小为28x28像素
resized_image = image.resize((28, 28), Image.BICUBIC)

# 保存或显示调整大小的图片
resized_image.save('0_resize.jpg')
resized_image.show()

      效果如下图所示,左边为原始图像,经过调整后,图像尺寸变为28*28,变小了。因此,右边图像明显小于左边。

2.2 批量图像尺寸调整

       实际中,图像在处理前需要统一尺寸大小,方便后续图像处理。因此,存在一个批量处理过程。其对多张图像进行统一处理。如下代码,为对10张图片,统一调整为尺寸大小为28*28的图像,其中处理前图像命名按照1.jpg、2.jpg、3.jpg、......进行命名。如下图所示,其实可以发现,0-9这10张图片,尺寸大小是不一样的。

      如下代码中,文件路径infile采用了for循环语句进行给定,其中{}可以看成数字i。在最后保存时,以同样方式进行保存调整尺寸后的图片。

#批量进行裁切
from PIL import Image
for i in range(10):
    infile = 'D:/test/' + '{}.jpg'.format(i)
    image = Image.open(infile)
    # 调整图片大小为28x28像素
    resized_image = image.resize((28, 28), Image.BICUBIC)
    #颜色进行反转

    savefile='D:/test/' +'{}'.format(i)+'_resize.jpg'
    resized_image.save(savefile)

      如下图所示,排在前面的为调整尺寸后图像,可以发现其尺寸大小基本一致,表明程序运行成功。其实,从图像详细信息中,可以查看像素值,如下图所示。

调整前像素97*103调整后像素28*28

3、总结

      本次介绍了基于python中Image库,实现对图像大小调整,其中包含单张图像与批量图像大小调整。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/750666.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MYSQL 四、mysql进阶 5(InnoDB数据存储结构)

一、数据库的存储结构:页 索引结构给我们提供了高效的索引方式,不过索引信息以及数据记录都是保存在文件上的,确切说时存储在页结构中,另一方面,索引是在存储引擎中实现的,Mysql服务器上的存储引擎负责对表…

当中年男人的觉越来越少 他突然半夜买台电脑(30+岁仿真工程师买电脑心得)

仿真工程师的购机分析,游戏本、移动工作站还是台式机? 认清自己的需求。 现状。现在有一个19年买的华为matebook14、i5第八代低压U,8G内存。还好有SSD当虚拟内存,要不开网页估计都得卡住。媳妇还有台i7、16G的matebook&#xff…

MC进样管PFA塑料管NEPTUNE Plus多接收等离子质谱仪配套管子

PFA进样管可适配Neptune plus多接收器等离子质谱仪(MC-ICP-MS),广泛应用于地球化学、核保障、环境科学、金属组学领域,在生物、物理、化学、材料等多个学科的交叉方向也有良好的应用前景。 外观半透明,便于观察管内情…

基于LangChain构建RAG应用

前言 Hello,大家好,我是GISer Liu😁,一名热爱AI技术的GIS开发者,上一篇文章中我们详细介绍了RAG的核心思想以及搭建向量数据库的完整过程;😲 本文将基于上一篇文章的结果进行开发,主…

最长回文串

描述: 最长回文串 思路: 统计每个字母出现次数,如果是偶数,ret x;如果是存在奇数的话,就可以放在中间,ret 1. 代码: class Solution { public:int hash[200];int longestPalindrome(str…

Elasticsearch8.x聚合查询全面指南:从理论到实战

聚合查询的概念 聚合查询(Aggregation Queries)是Elasticsearch中用于数据汇总和分析的查询类型。它不同于普通的查询,而是用于执行各种聚合操作,如计数、求和、平均值、最小值、最大值、分组等。 聚合查询的分类 分桶聚合&…

绘唐3是免费的吗?

绘唐科技是一家中国电子信息产品制造商和供应商,成立于2005年。公司主要经营智能硬件、智能穿戴设备、智能家居设备和智能交通设备等领域的产品开发和销售。绘唐科技拥有强大的研发团队和制造能力,能够为客户提供定制化的产品解决方案。 绘唐科技的产品种…

【Spring】Spring学习笔记

Spring数据库 Spring JDBC 环境准备 创建Spring项目, 添加以下依赖 H2 Database: 用于充当嵌入式测试数据库JDBC API: 用于连接数据库Lombok: 用于简化pojo的编写 然后添加配置文件: spring.output.ansi.enabledALWAYS spring.datasource.username*********** spring.dataso…

3d怎么把歪的模型摆正?---模大狮模型网

在进行3D建模过程中,有时候会遇到模型出现歪曲或者旋转不正确的情况,这可能会影响到后续的设计和渲染效果。因此,学会将歪曲的模型摆正是一个非常重要的技巧。模大狮将介绍几种常用的方法,帮助您有效地将歪曲的3D模型摆正&#xf…

抖音团购达人实战营,抖音团购达人从0-1教程(11节课)

课程目录: 1-团购达人先导课1.mp4 2-账号措建.mp4 2-账号搭建_1.mp4 3-开通团购达人_1.mp4 4-账号养号涨粉套路_1.mp4 5-团购选品正确姿势_1.mp4 6-短视频之混剪课_1.mp4 7-短视频之图文课_1.mp4 8-短视频之口播课_1.mp4 9-短视频运营策略_1.mp4 10-团购…

纯血鸿蒙Beta版本发布,中国华为,站起来了!

2024年6月21日至23日,华为开发者大会2024(HDC 2024)于东莞盛大举行。 此次大会不仅在会场设置了包括鸿蒙原生应用、统一生态统一互联等在内的11个展区,以供展示HarmonyOS NEXT的强大实力,还对外宣布了HarmonyOS的最新进…

初探 YOLOv8(训练参数解析)

文章目录 1、前言2、Backbone网络3、YOLOv8模型训练代码3.1、模型大小选择3.2、训练参数设置 4、训练参数说明5、目标检测系列文章 1、前言 YOLO 因为性能强大、消耗算力较少,一直以来都是实时目标检测领域的主要范式。该框架被广泛用于各种实际应用,包…

Linux网络编程:套接字编程

1.Socket套接字编程 1.1.什么是socket套接字编程 Socket套接字编程 是一种基于网络层和传输层网络通信方式,它允许不同主机上的应用程序之间进行双向的数据通信。Socket是网络通信的基本构件,它提供了不同主机间的进程间通信端点的抽象。一个Socket就是…

World of Warcraft [CLASSIC] Level 70 Dire Maul (DM)

[月牙钥匙] [大型爆盐炸弹] World of Warcraft [CLASSIC] Level 70 厄运之槌,完美贡品,Dire Maul (DM) Foror‘s Compendium of Dragon Slaying 佛洛尔的屠龙技术纲要 因为不是兽王宝宝,而且开始位置放的不对&am…

Arathi Basin (AB) PVP15

Arathi Basin (AB) PVP15 阿拉希盆地,PVP,15人战场

C# 23设计模式备忘

创建型模式:单例(Singleton)模式:某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有限多例模式。 原型(Prototype)模式:将一个对象作为原型&…

机器人控制系列教程之URDF自动生成工具

URDF文件的编写较为复杂,ROS官方提供了URDF的SolidWorks插件,可方便地将 SW 零件和装配体导出为 URDF 文件。导出器将创建一个类似 ROS 的软件包,其中包含网格、纹理和机器人(URDF 文件)目录。对于单一的 SolidWorks 零…

CVE-2024-37032漏洞预警:尽快升级Ollama

实时了解业内动态,论文是最好的桥梁,专栏精选论文重点解读热点论文,围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型重新阅读。而最新科技(Mamba,xLSTM,KAN)…

Mac电脑安装HomeBrew工具(100%成功)

1.Homebrew是什么? homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等功能。通过简单的指令可以实现包管理,而不用关心各种依赖和文件路径情况。 2.homebrew常用命令 检测是否安装HomeBrew: brew -v卸载Hom…

AI提示词投喂新手教程(一):基础概念和工具

对于很多已经熟悉提示词工程(prompt engineering)的朋友来说,以下内容可能已经是老生常谈了。然而,仔细搜索和翻阅了星球上关于提示词的新手教程,发现对新手并不是很友好,内容零散且缺乏系统性。为此&#…