如何使用 imageio 调整图像大小?

2024-01-07

考虑一个图像img类型的imageio.core.util.Array.

形状为img is (256, 256, 3)。我想将其调整为(128, 128, 3).

我至少尝试了以下三种:

img.resize(img_res, pilmode="RGB")
img.resize(img_res)
img = cv2.resize(img, self.img_res)

Here img_res = (128, 128).

他们都没有运作良好。如何将图像调整为所需的尺寸?


根据文档关于imageio.core.util.Array https://imageio.readthedocs.io/en/stable/devapi.html#imageio.core.Array, Array是“一个子类np.ndarray[...]”。因此,当调用resize一些img类型的Array,实际调用转到np.ndarray.resize https://numpy.org/doc/stable/reference/generated/numpy.ndarray.resize.html- 哪个IS NOT np.resize https://numpy.org/doc/stable/reference/generated/numpy.resize.html!这在这里很重要。

从文档上np.ndarray.resize:

Raises:

值错误

If a不拥有自己的数据[...]

这就是为什么,像这样的一些代码

import imageio

img = imageio.imread('path/to/your/image.png')
img.resize((128, 128))

会以这种方式失败:

Traceback (most recent call last):
    img.resize((128, 128))
ValueError: cannot resize this array: it does not own its data

该错误似乎与Array类,因为以下代码也会失败并显示相同的错误消息:

from imageio.core.util import Array
import numpy as np

img = Array(np.zeros((200, 200, 3), np.uint8))
img.resize((128, 128))

显然,Array类仅存储一些不可直接访问的 NumPy 数组的视图,也许是一些内部内存缓冲区!?

现在,让我们看看可能的解决方法:

实际上,使用np.resize like

import imageio
import numpy as np

img = imageio.imread('path/to/your/image.png')
img = np.resize(img, (128, 128, 3))

不是一个好的选择,因为np.resize未设计用于正确调整图像大小。所以,结果是扭曲的。

使用 OpenCV 对我来说效果很好:

import cv2
import imageio

img = imageio.imread('path/to/your/image.png')
img = cv2.resize(img, (128, 128))

请记住,OpenCV 使用 BGR 排序,而 imageio 使用 RGB 排序 – 这在使用时很重要cv2.imshow例如。

使用 Pillow 也可以正常工作:

import imageio
from PIL import Image

img = imageio.imread('path/to/your/image.png')
img = Image.fromarray(img).resize((128, 128))

最后,还有skimage.transform.resize:

import imageio
from skimage.transform import resize

img = imageio.imread('path/tp/your/image.png')
img = resize(img, (128, 128))

选择最适合您需求的一款!

----------------------------------------
System information
----------------------------------------
Platform:      Windows-10-10.0.16299-SP0
Python:        3.8.5
imageio:       2.9.0
NumPy:         1.19.5
OpenCV:        4.5.1
Pillow:        8.1.0
scikit-image:  0.18.1
----------------------------------------
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 imageio 调整图像大小? 的相关文章

  • Go 中的 WebP 编码器/解码器

    是否有一个完整的 WebP 编码器和解码器与当前每周 或可分叉 兼容 它的速度与标准 png 相当吗 这个人在 GitHub 上有一个包 其中包含 WebP 的编码器和解码器 https github com chai2010 webp h
  • CGContextDrawImage 绘制非常模糊的大图像

    我正在尝试制作一个可以使用 CGContextDrawImage 绘制大图像 例如 2048 x 1537 图像的一部分的对象 它工作得很好 只是它非常模糊 我正在使用一个 drawingController 它覆盖了drawLayer i
  • .php 随机图像在外部站点上作为 .jpg

    我发布的论坛只允许从外部 URL 加载 jpg png 和 gif 图像 我想解决这个问题 并从服务器上的目录中随机选择一个动态头像 但我无法使其正常工作 可能是由于在外部站点上执行了额外的检查 或者我的代码中存在错误 到目前为止 我已经在
  • 使用 Angular JS ng-src 的后备(默认)图像

    我正在尝试使用从模式返回的数据设置图像源 这是在 ng repeat 循环内 div div span table tr td class imgContainer img td tr table span div div
  • ABSMIDDLE 在 Firefox 和 Chrome 上的工作方式不同吗?

    我有一个图标图像和文本 如下所示 一切的代码来源是 img src align left My Title Here 问题在于 与 Firefox 相比 Chrome 中的图标没有与标题垂直对齐 我觉得absmiddle根本不起作用 有什么
  • 如何在 Microsoft 报告中显示字节数组中的图像

    我使用报表文件和 ReportViewer 控件来显示在运行时从对象动态加载数据的报表 我需要显示一个以字节数组形式存储在对象中的图像 PictureBox 的值当前设置为 First Fields ImageData Value dtst
  • 当我使用 Image.FromFile() 时 FileNotFound

    我在这种情况下使用 Image FromFile string 方法 using System using System Collections Generic using System ComponentModel using Syste
  • Android 相机未保存在特定文件夹 [MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA]

    当我在 Intent 中使用 MediaStore INTENT ACTION STILL IMAGE CAMERA 时遇到问题 相机正常启动 但它不会将文件保存在我的特定文件夹 photo 中 但是当我使用 MediaStore ACTI
  • 在 Android 中调整可绘制对象的大小

    我正在为进度对话框设置一个可绘制对象 pbarDialog 但我的问题是我想每次调整可绘制的大小 但不知道如何调整 这是一些代码 Handler progressHandler new Handler public void handleM
  • 通过 htaccess 将 PNG 解析为 PHP 仅适用于本地服务器,但不适用于网络服务器

    我用 PHP 创建了一个动态 PNG 图片 为了使用 PNG 扩展名 我创建了一个包含以下内容的 htaccess 文件 AddType application x httpd php png 在我的本地 XAMPP 服务器上 一切工作正常
  • 如何将图像转换为纹身? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我后来正在使用纹身应用程序 因为我需
  • 如何在MATLAB中显示由三个矩阵表示的图像?

    我有 3 个相同大小的 2D 矩阵 假设 200 行和 300 列 每个矩阵代表三种 基本 颜色 红色 绿色和蓝色 之一的值 矩阵的值可以在 0 到 255 之间 现在我想组合这些矩阵以将它们显示为彩色图像 200 x 300 像素 我怎样
  • 在PHP中根据日期显示图像

    在我的计算机上的某个位置 我有一个 PHP 脚本 用于根据日期显示图像 这将允许我在特定日期或选定日期之间显示不同的图像 并在当前日期未列出时显示默认日期要显示的特定图像 我最近的一个硬盘驱动器出现了问题 丢失了一堆文件 我担心这个脚本就是
  • 如何将 .ashx 处理程序与 asp:Image 对象一起使用?

    我有一个 ashx 处理程序 using System using System Web public class Thumbnail IHttpHandler public void ProcessRequest HttpContext
  • 如何将两个图像放置在一个div的对角

    如你所见 我不是 CSS 专家 我需要一些帮助来了解如何使用两个图像制作这个 div 如下图所示 托马斯是对的 但还有更好的解决方案 div img class align left src alt description of your
  • 在Python中使用pil读取tif图像时出现值错误?

    我必须读取尺寸的tif图像2200 2200并输入 uint16 我将 PIL 库与 anaconda python 一起使用 如下所示 from PIL import Image img Image open test tif img i
  • 将一幅图像合成到另一幅图像上时,RMagick 透明度不起作用

    在下面的代码中 我尝试在一些山脉的图像上覆盖一个透明的正方形 我认为它会起作用 但是通过设置background color none 它不会使图像透明 结果是左上角有一个黑色方块 所需的结果是黑色方块应该是透明的 require open
  • 如何更改javaFX中按钮的图像?

    我正在使用javaFX 我制作了一个按钮并为此设置了图像 代码是 Image playI new Image file c Users Farhad Desktop icons play2 jpg ImageView iv1 new Ima
  • 帮助将图像从 Servlet 获取到 JSP 页面 [重复]

    这个问题在这里已经有答案了 我目前必须生成一个显示字符串文本的图像 我需要在 Servlet 上制作此图像 然后以某种方式将图像传递到 JSP 页面 以便它可以显示它 我试图避免保存图像 而是以某种方式将图像流式传输到 JSP 自从我开始寻
  • VBA将二进制图像转换为网页的base64编码字符串

    我正在尝试读取 JPG 文件并将该文件转换为 base64 编码的字符串 该字符串可用作网页上的嵌入 jpeg 我在网上发现了两个在 VBA 中进行 Base64 编码 解码的函数 它们似乎被广泛接受 编码 解码过程产生了我的原始二进制字符

随机推荐

  • 用户控件与 Windows 窗体

    Visual Studio C 中的用户控件和 Windows 窗体有什么区别 非常简单地说 用户控件是一种制作自定义 可重用组件的方法 用户控件可以包含其他控件 但必须由窗体托管 Windows 窗体是控件 包括用户控件 的容器 虽然它包
  • 如何扩展 Google 地图中的共享位置 URL?

    我正在尝试从谷歌地图共享位置链接获取位置 因此我使用 Google Shorten URL API 来扩展 URL 但是当我从 Android 设备共享 Google 地图应用程序的 URL 时 它给了我https maps app goo
  • 自定义 HTTP 授权标头

    我想知道将自定义数据放入 HTTP 授权标头中是否可以接受 我们正在设计一个 RESTful API 我们可能需要一种方法来指定自定义授权方法 作为一个例子 我们称之为FIRE TOKEN验证 根据规范 这样的事情是否有效并允许 Autho
  • 什么是本机构建环境?

    我只是从互联网上阅读信息 目前cmake 关于页面 http www cmake org cmake project about html 我需要信息来填补空白 这有助于了解全局 我希望答案很简单 什么是本机构建环境 背景 我需要知道how
  • jQuery 设置单选按钮

    我正在尝试设置一个单选按钮 我想通过使用值或 ID 来设置它 这是我尝试过的 input radio name cols newcol attr checked true newcol是单选按钮的 id 也许需要进行一些编辑 有两组无线电盒
  • Cardview 中的 ConstraintLayout 添加空白

    我正在尝试创建一个CardView有一个ConstraintLayout组织一些TextView 有时它会按预期显示 但有时 它会添加额外的空白 例如当键盘关闭时 会破坏布局 我下面有一个 GIF 显示CardView在同一时间段内工作和不
  • 使用 SQL Server Server Management Studio 导入/导出数据库

    我认为这很简单 但事实并非如此 我确信有一种简单的方法可以做到这一点 但我无法找到它 我真丢脸 我想导入 导出数据库本身 表 约束 外键等 我宁愿不用它获取数据 但如果没有其他方法 我可以在之后删除它 那么 如何使用 MS SQL Serv
  • 如果没有发生左值到右值的转换,取消引用无效指针是否合法

    尽我所能 我见过的最接近的答案是this https stackoverflow com questions 7346634 dereferencing an invalid pointer then taking the address
  • YouTube 嵌入 iframe 未在 Safari 中显示

    链接是http thecodeclub org http thecodeclub org 还有一个 YouTube 视频 在 Chrome 中工作正常 但 iframe 在 Safari 中仍为空白 有其他人遇到过这个问题或者有解决办法吗
  • 如何在 JavaScript 中加载文本文件?

    我正在创建一个简单的 WebGL 项目 需要一种加载模型的方法 我决定使用 OBJ 格式 所以我需要一种方法来加载它 该文件 将 存储在服务器上 我的问题是 JS 中的文件如何加载到文本文件中并逐行扫描它 逐个令牌 就像 C 中的流一样 我
  • OpenGL ES 顶点着色器中动态调整大小的数组;用于混合形状/变形目标

    我即将执行混合形状 变形目标的 Opengl ES 实现 但我不太确定执行此操作的最佳方法 我面临的问题是我希望顶点数据的插值发生在 GPU 上 但我也希望混合形状的数量是任意的 澄清一下 我不希望我的顶点着色器看起来像这样 OpenGL
  • Wpf 动画最佳实践 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • async/await 函数内的 JavaScript Promise 解析最终的响应数组

    我是 JavaScript 和 Promises 方面的新手 我正在尝试构建从 API 获得的对象数组 为此 我在一个文件中构建了两个函数MyFile js 当 axios Promise 得到解决时 第一个返回一个 Promise 它是
  • 单击 ActionBar 中的后退按钮时不会调用 onActivityResult

    这是我的问题 创建一个主活动 添加一个按钮来启动另一个活动 SecondActivity Intent i new Intent getActivity SecondActivity class startActivityForResult
  • 使用 Java 进行 PGP 加密和解密 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想使用 PGP 密钥解密文件 我已经下载并安装了 PGP 密钥安装程序 我使用它创建了一个文本文件并使用 PGP 密钥加密了该文本文
  • 用于索引的 Cloud Firestore 通配符

    设置索引时 Cloud Firestore 中通配符级别的语法是什么 我知道有一个安全规则 Thanks Cloud Firestore 索引基于集合名称 不是完整的收集路径 所以如果你想创建索引users id messages 正确的方
  • 依赖注入 - 多个类方法中需要新实例

    我有一些代码看起来像这样 public MyService IDependency dependency dependency dependency public Message Method1 dependency DoSomething
  • 使用 Unix 工具和多列进行排序

    我正在寻找解决这个问题的最简单的方法 我有一个巨大的数据集 无法加载到这种格式的 Excel 中 This is a sentence 10 This is another sentence 5 This is the last sente
  • Delphi #IF(DEBUG) 等效吗?

    Delphi 是否有与 C if DEBUG 编译器指令等效的代码 用这个 IFDEF DEBUG ENDIF
  • 如何使用 imageio 调整图像大小?

    考虑一个图像img类型的imageio core util Array 形状为img is 256 256 3 我想将其调整为 128 128 3 我至少尝试了以下三种 img resize img res pilmode RGB img