从压缩文件夹中读取图像 (jpeg)

Reading images (jpeg) from a zipped folder

我在压缩文件中有以下文件夹结构"imgs.zip"

names.files <- unzip("imgs.zip","test",list=TRUE)
names.files$Name[3]
[1] "test/img_10.jpg"

使用以下代码读取图片

readJPEG(unz("imgs.zip",names.files$Name[3]))

我收到错误消息

Error in path.expand(source) : invalid 'path' argument

我尝试在 R 中搜索压缩文件夹中的读取图像,但到目前为止都是徒劳的。

我认为您无法通过 unz 读取压缩图像文件。简而言之,readJPEG 正在寻找文件路径,而不是连接,这是 unz 给你的。

看看它给你的输出类型:

> test <- (unz("figure.zip", names.files$Name[3]))
> test
                    description                           class                            mode                            text 
"figure.zip:figure/age_all.png"                           "unz"                             "r"                          "text" 
                         opened                        can read                       can write 
                       "closed"                           "yes"                           "yes" 
> str(test)
Classes 'unz', 'connection'  atomic [1:1] 6
  ..- attr(*, "conn_id")=<externalptr> 

readJPEG 需要一个未压缩图像的文件路径,而不是这个 unz 连接是什么。具体来说,这是它失败的地方:

source <- path.expand(source)

你的例子中的 source 是 unz 的输出。

使用 unzip 提取文件名和读取文件:

library(jpeg)
# Select your Zip file or replace file.choose() with exact path
zippath <- file.choose() 
names.files <- unzip(zippath, list=TRUE)
readJPEG(unzip(zippath, names.files$Name[3]))

不需要使用paste