【问题标题】:Exporting image file direcly from R based on data frame基于数据框直接从R导出图像文件
【发布时间】:2017-03-13 13:17:31
【问题描述】:

我在 R 中有以下数据框:

df <- data.frame(a = c(0, 0, 1, 1),
                 b = c(0, 1, 0, 1),
                 col = c("red", "green", "green", "yellow"))

我有兴趣导出一个光栅图像文件(png、tif 等),该文件将包含数据框中每个条目的一个像素,并具有适当的颜色。对于上面的示例,将有一个 2 x 2 的图像文件,如下所示:

我觉得raster 包可能有用,但据我了解,它只能导出地理空间光栅图像类型,而不是普通图像。

【问题讨论】:

    标签: r image raster


    【解决方案1】:

    这工作,使用tiff 包:

    library(tiff)
    
    df <- data.frame(a = c(0, 0, 1, 1),
                     b = c(0, 1, 0, 1),
                     col = c("red", "green", "green", "yellow"))
    
    mina <- min(df$a)
    minb <- min(df$b)
    maxa <- max(df$a)
    maxb <- max(df$b)
    
    colarray <- array(data = NA,
                      dim = c(maxb - minb + 1,
                              maxa - mina + 1,
                              3))
    
    for (k in 1:nrow(df))
    {
      colarray[df[k, 2] - minb + 1,
               df[k, 1] - mina + 1,
               ] <- col2rgb(df[k, 3]) / 255
    }
    writeTIFF(colarray, "res.tif", compression = "LZW")
    

    它可能更简洁一些,但这更适用于 x&y 坐标不一定是 0 到 n 的情况。

    使用相关软件包(例如png)也可以实现同样的效果。

    【讨论】:

      猜你喜欢
      • 2021-04-16
      • 2014-06-28
      • 2019-08-02
      • 1970-01-01
      • 2022-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多