如何将XY-RGB数据帧转换为图像[cimg类型]

问题描述 投票:1回答:1

使用imager库,我有一个数据框,其中包含有关列中图像的以下信息:

  • [X column:像素的x坐标
  • [Y column:像素的y坐标
  • [Rvalue:像素的红色分量
  • [Gvalue:像素的绿色分量
  • [Bvalue:像素的蓝色分量

我正在尝试将此数据帧转换为cimg,以将其作为映像存储在磁盘上-在完成对数据帧的处理后-。

我尝试按照文档中的说明使用as.cimg进行转换https://rdrr.io/cran/imager/man/as.cimg.data.frame.html

但是它不支持RGB参数,取而代之的是代表所有颜色的value参数,如何将RGB转换为值或如何计算该值,以便可以使用RGB组件的代码重建它?

这里是一个可以尝试的例子

install.packages('imager')
library(imager)
im <- load.image("~/any_image.png")
df_image <- as.data.frame(im, wide="c") # that's the same structure as my dataframe
# need to convert that back to an image

这是我的df的头部样本

  x y       c.1       c.2       c.3
1 1 1 0.8588235 0.7058824 0.4039216
2 2 1 0.9019608 0.7254902 0.4549020
3 3 1 0.8862745 0.7294118 0.4313725
4 4 1 0.8745098 0.7254902 0.4117647
5 5 1 0.8823529 0.7019608 0.4039216
6 6 1 0.8941176 0.7333333 0.4509804
r dataframe cimg
1个回答
0
投票

如果我正确阅读了?cimg帮助页面,则需要一个用于视频的时间变量,然后可以将rgb数据堆叠在一个值列中。然后阅读?as.cimg页面,似乎您还需要指定c = 3的颜色尺寸数。我的工作目录中确实有a png plot from a previous SO answer,因此我将三个rgb列作为单个向量取消列出,并使用结构的适当参数调用了as.cimg

© www.soinside.com 2019 - 2024. All rights reserved.