有没有办法在图像列表上使用lapply / sapply?

时间:2019-06-14 13:48:07

标签: r image lapply sapply

我正在使用多个R包,以尝试读取,操作和处理大约500张图像(.png)。问题是,对于所有三个软件包pngmagickOpenImageR,我一次只能读取一个图像-尝试运行lapply或{{1 }}循环,所有这三个函数都会返回有关路径或类型的各种错误。

我尝试了以下方法:

使用所有三个具有不同循环的软件包,应用语句。请参阅第3节中的代码。

for
  

警告消息:1:在png :: readPNG(path,...):libpng警告:iCCP:   已知不正确的sRGB配置文件

image_files<-list.files(path="~/mypath",pattern=".png",recursive=T,full.names=T)

str(image_files)
chr [1:560]

#using OpenImageR..

for (i in 1:length(image_files)){
  wb <- readImage(image_files[i])
}
  

rgb_2gray(wb [i)中的错误:与请求的类型不兼容:   [type = NULL; target =整数]

想使用lapply或函数来应用OpenImageR中的函数: #Despite warning, returns a large array [wb] ##Attempt to convert images to greyscale fpr (i in 1:length(wb)){ J <- rgb_2gray(wb[i]) } rgb_2灰色readImage'; dhash`

正如我说的,我可以做到这一点,但没有问题...

;
  

为什么我可以单独进行操作,但不能通过apply或for循环进行操作?

     
    

更新:

         

我终于能够使用示例数据来使它工作。我希望它可以在包含更多文件的实际项目中使用。如果有人指出任何错误或改进方法,请多加反馈:

  
myimage<-readImage(image_files[1])
>Returns large array

myimage<-rgb_2gray(myimage)
>Returns large matrix

myimage<-dhash(myimage)
>Returns dhash(12345cx953)

0 个答案:

没有答案