在R中循环灰度png文件
我读取png文件28x28px,然后选择灰度:在R中循环灰度png文件,r,file,loops,png,R,File,Loops,Png,我读取png文件28x28px,然后选择灰度: img = readPNG("../Folder/image.png") pic <- img[,,1]+img[,,2]+img[,,3] pic <- pic/max(pic)' result = pic*255 result img=readPNG(“../Folder/image.png”) piclappy创建了一个图像列表,因此在您的案例中,img[[1]]是第一个图像,img[[10]]是第十个图像。尝试循环浏览列表中的
img = readPNG("../Folder/image.png")
pic <- img[,,1]+img[,,2]+img[,,3]
pic <- pic/max(pic)'
result = pic*255
result
img=readPNG(“../Folder/image.png”)
piclappy
创建了一个图像列表,因此在您的案例中,img[[1]]
是第一个图像,img[[10]]
是第十个图像。尝试循环浏览列表中的每个图像。因此,如果要对图像1执行加法操作,需要执行以下操作:
pic <- img[[1]][,,1]+img[[1]][,,2]+img[[1]][,,3]
pic非常感谢!但我从png特定的3x3矩阵的28x28矩阵中选择,我需要循环通过矩阵,而不是列表。当我将代码从result=c(result,pic*255)更改为result=pic*255时,结果只是一个矩阵,而不是所有矩阵。对不起,应该是固定的。每个第i个图像现在都在results[[i]]
感谢您的帮助。我很感激。我有一个问题——当我有10个不同的矩阵(10xpng文件28x28px)时,为什么代码中的结果“o”给出10倍相同的矩阵?文件名
pic <- img[[1]][,,1]+img[[1]][,,2]+img[[1]][,,3]
img.list <- lapply(sprintf("../Folder/image%i.png", 1:10), png::readPNG) #select 10 png files
results <- list()
for (img in img.list) {
pic <- img[,,1]+img[,,2]+img[,,3]
pic <- pic/max(pic)
results[[length(results)+1]] <- pic*255
}