You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用OpenImageR批量保存转换后的灰度图像

将RGB图像转为灰度图后批量保存的解决方案

问题描述

我正尝试将RGB图像转换为灰度图后保存,已经用OpenImageR包读取了/dat目录下的所有jpg图片并转为灰度图,但不知道如何修改writeImage函数完成保存操作。

原代码如下:

library(OpenImageR)

path = list.files("/dat", ".jpg", 
                  full.names = T, all.files = TRUE)

imgr = lapply(path, readImage)
imgs = lapply(imgr, rgb_2gray)

# 不知道如何修改的保存代码
writeImage(img.fi))

解决方案

你的代码已经完成了图像读取和灰度转换,问题出在writeImage的使用方式——它需要明确指定要保存的图像对象和目标路径,且因为是批量处理,需要一一对应每个灰度图和保存路径:

  1. (可选)创建专门的灰度图保存目录
    避免和原图像混放,先创建一个新目录:
dir.create("/dat/gray_images", recursive = TRUE, showWarnings = FALSE)
  1. 生成每个灰度图的保存路径
    从原图像路径中提取文件名,拼接成新的保存路径(比如在文件名前加gray_标识):
save_paths = file.path("/dat/gray_images", paste0("gray_", basename(path)))
  1. 批量保存灰度图
    用mapply函数将灰度图列表和保存路径一一对应,调用writeImage完成保存:
mapply(writeImage, image = imgs, file_path = save_paths, quality = 100)

补充说明

  • writeImage的核心参数:image是要保存的图像对象,file_path是目标保存路径,quality用于设置JPG图像质量(取值0-100,默认75,数值越高质量越好)。
  • 如果不想新建目录,也可以直接在原目录保存,只需修改save_paths为:
save_paths = file.path(dirname(path), paste0("gray_", basename(path)))

内容的提问来源于stack exchange,提问作者user20003920

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 02:23:11