R使用非常宽的图像数据data.frame

时间:2015-11-01 22:17:42

标签: r dataframe

我正在进行一个项目,在那里我查看图像,并且必须在给定图像的情况下识别一些唯一的ID

然而,我遇到了一个问题。

如下所示,我有我的主要代码片段。另外我有2个其他文件来处理图像/库的加载和路径变量的处理(因为我们有3个人在处理项目)

当我加载数据并将其转换为所需的格式作为data.frame时,每个图像都是一行数据。 data.frame简单地拒绝使用R中允许的许多操作。

我试图让它打印出第一行的大部分上下文。

数据框大小:

  • 行数:N(图像数量)
  • Cols:375002(最后2个是图片的名称和相关的ID)

我可以用20行写出每一列。但其他操作失败了,让R和R Studio永远需要“kill -9”才能阻止它们。

我的规格:

  • 操作系统:Linux(Ubuntu 14.04)64位
  • R:版本3.2.2
  • GCC:版本4.8.4
  • RAM:32 GB
  • CPU:I7笔记本电脑
  • 磁盘:SSD 250 GB

    # Load labels from a specified file
    labels <- loadLabels(path = LABEL_FILENAME)
    
    # Fetch 2 whale id's
    randomWhaleId <- sample(unique(labels[, 2]), size = 2, replace = FALSE)
    # Fetch the file ~ id's 
    whaleImages <- labels[which(labels[, 2] %in% randomWhaleId), ]
    
    # Import image into R
    images <- loadImagesByName(path = IMG_PATH_RESIZED, imagefiles = whaleImages[, 1])
    
    # transform image into grayscale
    df_grays <- lapply(images, function(x) channel(x, "gray"))
    # extract data frames from the image object and convert to list (2d -> 1d)
    df_grays <- lapply(df_grays, function(x) as.list(imageData(x)));
    # Convert list to data frame
    df_grays <- data.frame(rbindlist(df_grays))
    # adding info columns
    df_grays <- cbind(df_grays, whaleImages)
    
    # Runs perfectly fine
    for(i in 1:ncol(df_grays)) {
      print(i)
      print(df_grays[,i])
    }
    
    # Runs forever 
    write.csv(x = df_grays, file = "/tmp/images.csv")
    
    # Start H2O server
    localH2O = h2o.init(nthreads = 6)
    # send to h2o (didn't work either)
    df_grays_h2o <- as.h2o(localH2O, df_grays)
    

0 个答案:

没有答案