问题标签 [python-imageio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3058 浏览

python - 在 macOS 上为 MoviePy 安装 ffmpeg 失败并出现 SSL 错误

我正在尝试编写一个 Python 程序,在 Mac OS 10.11.16 上使用 MoviePy 将 MP4 文件转换为 GIF。我用:

我收到一条错误消息,说我需要打电话imageio.plugins.ffmpeg.download()才能下载 ffmpeg。我用:

这给了我以下错误:

我肯定有互联网连接。我找到了这个链接,并尝试使用 Homebrew 和静态版本进行安装,但都没有成功。似乎自己编译它对我来说有点太高级了(我只是简单地研究了一下)。我imageio.plugins.ffmpeg.download()在 IDLE 上使用过。我读了一些关于使用 PyCharm 运行 MoviePy 代码的内容,但我得到了相同的初始错误。ffmpeg 目前在我的/usr/local/bin文件夹中。欢迎任何建议。感谢您的帮助。

编辑:我正在使用 Python 3.6.1

0 投票
1 回答
2757 浏览

python - 如何使用 numpy 快速迭代和修改像素数组?

首先,我对 Python 及其库比较陌生。

以下代码的目的是将 HDR 图像转换为 RGBM,详见WebGL Insights 第 16 章

该代码工作并产生正确的结果,但它的速度非常慢。这当然是由在 python 中分别迭代每个像素引起的,对于较大的图像可能需要很长时间(对于 3200x1600 大小的图像大约需要 4:30 分钟)。

我的问题是:有没有更有效的方法来实现我所追求的?我简要研究了 numpy 中的矢量化和广播,但还没有找到一种方法将它们应用于我的问题。

编辑:

感谢Mateen Ulhaq,我找到了一个解决方案:

这只需几秒钟即可完成。

0 投票
1 回答
1154 浏览

python - 使用 imageio 和 boto3 写入 s3

我想将图像写入 aws s3。在播放视频时,我试图通过某些功能处理图像,然后在完成后我希望将其存储到特定路径。imageio 直接检查名称中的扩展名并将图像写入适当的文件格式。

如果我将其写入本地位置,然后将其写入 s3,那么它可以工作,但是有没有更好的方法可以将它存储到 s3 而无需在本地写入。

任何帮助表示赞赏。

0 投票
1 回答
1359 浏览

python-2.7 - 当我的 PyQt 窗口变为非活动状态/调整大小时,为什么 Python 会崩溃?

在尝试在 PyQt4 窗口中显示网络摄像头提要(使用 imageio/ffmpeg 获得)的不同方式时,我偶然发现了这个答案。在 Python 2.7 中将其作为一个ImageDisplayWidget类实现后(如下所述),一切似乎都运行良好:打开一个窗口,显示我的网络摄像头提要没有故障。如果我关上窗户,一切都会停止并整齐地关闭。

但是...每当我单击此 PyQt 窗口外的任何位置(当它显示网络摄像头馈送时),导致它失去焦点时,Python.exe 会因未处理的 win32 异常而崩溃。当我尝试调整窗口大小时也会发生同样的情况。

我可能犯了某种非常愚蠢的初学者错误,但我只是不明白。谁能指出我正确的方向?我是否违反了(Py)Qt 甚至 Python 的一些基本规则?

这是一个最小的例子:

我发现可以通过添加一个wasActiveWindow标志(在构造函数中初始化为True)并将drawImage()调用封装在一些逻辑中来防止崩溃,如下所示:

但是,调整窗口大小仍然会使 python 崩溃。

0 投票
1 回答
5226 浏览

python - 使用 Python Imageio 的 gif 中的透明背景

基本上我正在使用以下代码从图像中制作 gif,我的图像png具有透明背景,但 gif 具有黑色背景。我不知道如何制作具有透明背景的 gif。

wherefilenames是一个包含所有要使用的文件名的数组。

0 投票
1 回答
3351 浏览

python - Python ImageIO 警告:根:IMAGEIO FFMPEG_WRITER 警告

我正在使用 python 处理一些图像,我正在尝试将一系列大小为 961x509 的图像转换为 MP4 电影文件。我已经这样做了,它正在工作,但是我有一个非常烦人的问题,警告说如下:

WARNING:root:IMAGEIO FFMPEG_WRITER WARNING: 输入图像不能被 macro_block_size=16 整除,从 (509L, 961L) 调整到 (512L, 976L) 以确保视频与大多数编解码器和播放器的兼容性。为防止调整大小,请使您的输入图像可被 macro_block_size 整除或将 macro_block_size 设置为 None(存在不兼容的风险)。由于数据未对齐,您可能还会看到有关速度损失的 FFMPEG 警告。[swscaler @ 04f8ac40] 警告:数据未对齐!这可能会导致速度损失

出现警告的问题是我的图像分辨率,该分辨率应该能被 2 整除,但我的不是。有没有可能让这个警告不再出现?因为我无法更改图像的大小,同时我不想调整所有图像的大小。

这是我的代码:

有人在这里对我有解决方案吗?

更新:

如果我要以这种方式将macro_block_size 设置为 None (这是我知道的唯一方法):

我将收到此错误消息:

为输出流 #0:0 打开编码器时出错 - 可能是不正确的参数,例如 bit_rate、rate、width 或 height

Traceback(最近一次调用最后一次):文件“”,第 146 行,在 run() 文件“”,第 136 行,在 run for i,_ in tqdm(enumerate(pool.imap_unordered(generateGIFsWithThreads, videoList))):文件“ ",第 953 行,在iter for obj in iterable: 文件 "",第 673 行,在下一个提升值 IOError: [Errno 32] Broken pipe

FFMPEG 命令: ffmpeg -y -f rawvideo -vcodec rawvideo -s 961x509 -pix_fmt rgb24 -r 10.00 -i - -an -vcodec libx264 -pix_fmt yuv420p -crf 25 -v 警告 D:\work\hero_forge\build\win32\Documents \GIFs\CH3_M1_0.mp4

FFMPEG标准错误输出:

0 投票
0 回答
259 浏览

python-imageio - ImageIO - 视频 get_reader() 分叉安全吗?

我在get_reader()视频中使用 ImageIO 的功能,而执行此操作的过程将被分叉。然后这个阅读器被不断地随机索引(使用该get_data方法)。最终,我遇到了一个错误imageio.core.format.CannotReadFrameError: Could not read frame -1。如果进程没有分叉,则不会发生此错误。ImageIO 的get_reader()分叉不安全吗?还是我的问题出在其他地方?

0 投票
0 回答
1150 浏览

python - 使用 FreeImage 将 hdr 转换为 jpg

如何使用 ImageIO 的 FreeImage 将 hdr 转换为 jpeg 图像?

我编写了一个函数,它接受和 EXR 并将其转换为 jpg,结果如下所示:

在此处输入图像描述

因此,我对如何拍摄 HDR 并将其转换为具有相似结果的 jpg 感到困惑。我从这里免费下载了 HDR:https ://hdrihaven.com/hdri/download.php?h=cayley_interior&r=1k

我只是不确定如何将 hdr 中的浮点数范围转换为 jpg 图像位深度。

高动态范围 > JPG

EXR > JPG

0 投票
2 回答
12516 浏览

python - 来自一组 png 图像的 python imageio mp4 视频

如何使用该模块从一组 png 图像制作 mp4 视频imageio?我试过这个:

我也试过im[:, :, 1]im. 我究竟做错了什么?我很高兴使用另一个模块。

0 投票
2 回答
12799 浏览

python - 无法使用 imageio 重塑数组。为什么?

我试图模仿这行代码的作用,使用imageio

但是,在使用时imageio我得到:

输出:Image([212, 211, 209, ..., 192, 190, 191], dtype=uint8)

有人可以解释这里发生了什么,为什么我的图像大小为 2352?在导入之前,我将图像大小调整为 28x28 像素。