使用 R 并行批量调整图像大小

2024-03-30

我正在尝试使用 R 批量调整数千个图像的大小(即减小文件大小)。我已经使用下面的代码成功地实现了这一点,但这需要很长时间(特别是当调整大小 > 50,000 个图像时)。有什么办法可以让这个任务在多个核心上运行吗?我是并行计算方面的新手,因此我们将不胜感激。提前致谢!

library(imager)    

pages <- list.files(path = '...insert directory path...',
                full.names = TRUE)


for(x in 1:length(pages)) {

file <- load.image(pages[x])

resized <- imresize(file,
                  scale = 0.390625)

save.image(resized,
         file = gsub("JPG", "jpg", paste(pages[x])))

}

秘密武器是GNU 并行。安装它homebrew:

brew install parallel

现在,创建一个输出目录,这样你的输入图像就不会被破坏并运行一堆mogrify并行命令:

mkdir results
parallel -X mogrify -resize 39% -path results ::: *.jpg

请做好备份,直到您掌握窍门为止!

基准

我制作了 1,000 个充满随机噪声的 400x400 JPEG,并按顺序转换它们

time for i in *.jpg; do convert $i -resize 39% results/$i; done

real    0m19.086s
user    0m18.615s
sys     0m3.445s

然后并行:

time parallel -X mogrify -resize 39% -path results ::: *.jpg

real    0m3.351s
user    0m23.021s
sys     0m0.706s
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 R 并行批量调整图像大小 的相关文章

  • 如何上下移动字符串并从中删除相似的字符串?

    我问了一个可能不太清楚的问题 所以我尝试用一 种可以理解的方式来解释它 这是我的数据 我的数据看起来像这样 看起来像这样 V1 V2 V3 1 Q9UNZ5 Q9Y2W1 2 Q9ULV4 Q6QEF8 3 Q9UNZ5 4 Q9H6F5
  • 如何更改 r 中的树状图标签

    我在 R 中有一个树形图 它基于使用 hclust 的分层聚类 我正在对不同颜色的标签进行着色 但是当我尝试使用以下命令更改树图的标签 集群所基于的数据帧的行 时dendrogram dendrogram gt set labels dat
  • mlogit:需要 TRUE/FALSE 时缺少值

    我有来自离散选择实验 DCE 的数据 该实验研究了来自不同行业的个人的招聘偏好 我已经格式化为长格式 我想使用 mlogit 进行建模 我已导出数据 并且可以使用 asclogit 命令在 Stata 中成功运行模型 但在 R 中运行时遇到
  • 如何使用 ggplot2 对曲线下的区域进行着色

    我一直在尝试使用 ggplot2 生成类似于此 R 图形的绘图 xv lt seq 0 4 0 01 yv lt dnorm xv 2 0 5 plot xv yv type l polygon c xv xv lt 1 5 1 5 c y
  • 更新两组单选按钮 - 闪亮

    我问了这个问题 反应式更新两组单选按钮 闪亮 https stackoverflow com questions 35040579 update two sets of radiobuttons reactively shiny 昨天 但也
  • 如何在R中将英尺转换为厘米?

    我得到了一个高度的字符向量 如下所示 859 5 10 5 8 5 11 6 0 5 10 6 2 5 11 6 2 6 2 5 7 5 9 5 7 6 1 6 0 5 11 6 0 6 5 6 1 6 1 5 10 5 11 5 11 6
  • 正则表达式提取美国邮政编码,但不提取假代码

    使用 XML 包和 XPath 从网站上抓取地址 有时我只能得到一个嵌入了我想要的邮政编码的字符串 提取邮政编码很简单 但有时会显示其他五位数字的字符串 以下是 df 中问题的一些变体 zips lt data frame id seq 1
  • R,igraph,是否可以用图案填充顶点

    使用 R 和 igraph 绘制图形 我使用颜色来标记顶点类型 请参阅下面的代码 是否可以用图案而不是颜色填充顶点 以便在以彩色和黑白查看时可以区分节点类型 我需要 4 种独特的颜色 图案 colorbrewer 中唯一适合的调色板是这个
  • 使用 R SOAP (SSOAP) 检索数据/抓取

    在 B cycle 页面 www bcycle com whowantsitmore aspx 上 我试图抓取投票的位置和值 The URL http mapservices bcycle com bcycleservice asmx ht
  • 如何将数据从长格式重塑为宽格式

    我在重新排列以下数据框时遇到问题 set seed 45 dat1 lt data frame name rep c firstName secondName each 4 numbers rep 1 4 2 value rnorm 8 d
  • R 中具有 p 值的相关矩阵

    假设我想要传导相关矩阵 library dplyr data iris iris gt select if is numeric gt cor y iris Petal Width method spearman gt round 2 现在
  • 如何在R中创建for循环? [复制]

    这个问题在这里已经有答案了 可能的重复 如何在 R 编程中启动 for 循环 https stackoverflow com questions 4162363 how to start a for loop in r programmin
  • 使用 R Markdown 文档作为函数源

    我正在研究 R Markdown 来记录我经常使用的功能 我会将它们放入 R Markdown 文件中以记录它们 然后如果我几个月后回来查看它 就能够阅读我在函数背后的想法 我的问题是 如果我开始一个新的 R 项目 是否可以获取 r mar
  • R 无法回忆起内存中的对象

    我正在构建一个包含多个步骤的函数 其中每个步骤都会创建一个对象 某个步骤失败 temp3 并且无法找到前面的步骤对象 错误 未找到对象 temp2 我不知道为什么 我有类似的函数 遵循完全相同的结构 每个步骤都遵循先前创建的对象 在函数内
  • Haskell 五个独特的 Wordle 单词

    为了好玩 我正在尝试解决 Matt Parker 在他的 Haskell 频道 Standup Maths in Haskell 频道的链接视频中谈到的与 Wordle 相关的问题 基本上 找到 5 个没有任何共同字母的 5 个字母单词 因
  • 连接树状图和热图

    我有一个heatmap 一组样本的基因表达 set seed 10 mat lt matrix rnorm 24 10 mean 1 sd 2 nrow 24 ncol 10 dimnames list paste g 1 24 sep p
  • 设置缩略图内容类型

    我需要设置Content Type对于缩略图 我已经尝试如下所示 但它不起作用 仍然 它存储为流 天青功能 索引 json var Jimp require jimp module exports context myBlob gt Rea
  • 按名称包含在单个对象中的多个列对 data.frame 进行排序?

    我想排序一个data frame由多列组成 理想情况下使用基础 R 无需任何外部包 尽管如果有必要 就这样吧 读过如何按列对数据框进行排序 https stackoverflow com questions 1296646 how to s
  • 从 leafletProxy() 返回渲染的传单地图

    是否可以在渲染后在 Shiny 中检索传单地图 下面是一个代码示例 展示了如何生成地图leaflet 与返回的不同leafletProxy 即使它们在渲染时看起来完全相同 是否有一个功能可能不同于leafletProxy 获取实际的 htm
  • 解压 R 数据框中的列表

    我有一个dataframe其中一个字段包含不同长度的列表 我想将该字段中列表的每个元素提取到其自己的字段中 以便我可以将结果收集到一个很长的字段中dataframe每个列表元素都有一个 id 这是一个例子dataframe dat lt s

随机推荐

  • 缩放后确定 HTML5 画布上的鼠标位置

    我正在开发一些 HTML5 中涉及画布使用的软件 我需要在一张画布上进行缩放并允许用户通过单击鼠标在画布上进行涂鸦 到目前为止 在我找到的一些示例的帮助下 我已经可以使用缩放功能了 问题是缩放后 我的绘图工具上的鼠标位置不正常 在进行任何缩
  • 绘制线而不是点 R

    这可能是一个简单的问题 但我无法找到解决方案 我有以下图 我正在使用图 CI 因为我无法用图 填充点 leg lt c 1 2 3 4 5 6 7 8 Col rar1 lt c rgb 1 0 0 0 7 rgb 0 0 1 0 7 rg
  • PyQt self.close() 在 __init__() 中

    我在 Python 2 7 下使用 PyQt4 时遇到了一些小问题 我正在编写一个小项目 其中有一些 QDialogs 相互打开 因此 我打开一个对话框 然后立即打开另一个对话框来检查某些内容 当出现错误检查时 我希望关闭整个对话框 它看起
  • 您可以设置整数的最大限制(C++)吗?

    如果我不想让一个整数超过 100 是否有任何简单的方法可以确保该整数永远不会超过 100 无论用户添加了多少 例如 50 40 90 50 50 100 50 60 100 50 90 100 尝试这个 std min 50 40 100
  • 从 JSON 创建多表头表

    我是熊猫新手 我正在尝试创建下表 C Perl line func line func version covered total covered total 我创建的 JSON 结构如下 version1 perl line covere
  • 使用 Google AppEngine MapReduce 处理所有记录后,如何从计数器获取值?

    使用 Google AppEngine MapReduce 处理所有记录后 如何从计数器获取值 或者我在这里错过了计数器的用例 示例代码来自http code google com p appengine mapreduce wiki Us
  • 如何从 browserify/babelify 导出全局变量以便在没有 browserify 的项目中使用?

    设想 我有两个设置完全不同的项目 常规网站 遗留代码和简单的 gulp 设置 小宠物项目 在 ES6 类的帮助下编写的 JS 滑块插件 用 babel 转译 JS 吞咽任务 gulp task js function return gulp
  • Apache Hive regEx serde:数据类型

    对于处理日志 我想使用 Apache Hive regEx serde 但我只找到使用 String 作为表列的数据类型的示例 现在我的问题是 是否支持基于日期的类型 整数和数组 还是只是字符串 此示例 和其他示例 仅使用字符串 CREAT
  • Google 关于输入/输出参数作为指针的样式指南

    The 谷歌 C 风格指南 http google styleguide googlecode com svn trunk cppguide html做出了明确的区分 严格遵循cplint py http google styleguide
  • 打开/关闭sql连接-冗余代码

    我想知道避免以下情况的最基本方法是什么 con ConnectionString connection String con Open cmd Connection con database interaction here cmd Clo
  • 是否已经可以在react-native中使用顶级await了?

    是否已经可以在react native中使用顶级await了 我看到它已被添加到 TypeScript 3 8 中 我没有使用 TS 我只是想看看它是否有帮助 但没有 然而 在react native中 文件转换是由babel处理的 我不认
  • Jupyter - 在多个单元中拆分类

    我想知道是否有可能将 jupyter 类分成不同的单元格 可以说 first cell class foo object def init self var self var var second cell def print var se
  • 如何从 Java 最小化 JFrame 窗口?

    在我的 Java 应用程序中 我有一个 JFrame 窗口 如何从我的 Java 程序中最小化它 最小化与frame setState Frame ICONIFIED 恢复与frame setState Frame NORMAL
  • 如何更改command_not_found_handle中的当前工作目录

    我正在尝试在 Bash 中编写一个未找到的句柄 它执行以下操作 如果 1 存在并且它是一个目录 cd进去 如果 1 存在于用户定义的目录中 DEV DIR cd 进入其中 如果前面的条件不适用 则失败 现在我有这样的事情 export DE
  • 并行解决多个获取请求

    我正在尝试执行多个并行获取请求react native 但我没有得到预期的响应数据 我错误地整合了什么 async componentDidMount try let res1 res2 await Promise all fetch ap
  • 为 Azure CDN 创建服务主体失败,并出现租户权限错误

    我正在尝试将 Azure CDN 添加为服务帐户 以便将其连接到 KeyVault 遵循官方指南和其他建议 例如无法将 Microsoft Azure Cdn 服务主体添加到 Key Vault 访问策略 https stackoverfl
  • 语义 UI 浮动

    语义 UI 新手 我在文档中找不到如何 如果可能的话 浮动一个简单元素而不使其成为其他元素 如按钮或段 例如 我在页面底部有一个步骤导航 计数器 其写法如下 div class row three column div class colu
  • 停止或启动远程计算机上的服务

    我创建了一个脚本 它将根据服务的显示名称启动或停止服务 我的脚本可以在本地计算机上运行 但我想确保它可以在远程计算机和本地计算机上完成 我不知道如何让它在远程机器上工作 任何帮助 将不胜感激 serviceName Read Host Pr
  • 等待光标移过整个 html 页面

    是否可以通过简单的方式将整个html页面上的光标设置为 等待 这个想法是向用户展示在 ajax 调用完成时正在发生的事情 下面的代码显示了我尝试过的简化版本 并演示了我遇到的问题 如果一个元素 id1 设置了光标样式 它将忽略主体上设置的样
  • 使用 R 并行批量调整图像大小

    我正在尝试使用 R 批量调整数千个图像的大小 即减小文件大小 我已经使用下面的代码成功地实现了这一点 但这需要很长时间 特别是当调整大小 gt 50 000 个图像时 有什么办法可以让这个任务在多个核心上运行吗 我是并行计算方面的新手 因此