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