我正在使用多个R包,以尝试读取,操作和处理大约500张图像(.png)。问题是,对于所有三个软件包png
,magick
和OpenImageR
,我一次只能读取一个图像-尝试运行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)