我在删除文件夹中的图像时遇到一些问题
以下是我所做的。
import os,glob
from PIL import Image
from skimage import io
import numpy as np
path = "/Users/Xin/Desktop/SVM-Image-Classification-master/Folder"
# Delete images with the low pixel value
for filename in os.listdir(path):
images = Image.open(os.path.join(path,filename))
print(images)
print(np.mean(images))
pirnt(os.listdir(path))
if np.mean(images) < 10:
os.listdir(path).remove(filename)
print(os.listdir(path))
我希望可以删除像素值较低的图像。但是,结果显示如下,我要删除的图像仍在列表中。
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=256x256 at 0x1C19FE37F0>
9.507644653320312
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=256x256 at 0x1C198F2E10>
10.004150390625
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=256x256 at 0x1C19FE37F0>
10.897491455078125
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=256x256 at 0x1C198F2F98>
10.406112670898438
['0543_AD_axial_090_PET.jpg', '0543_AD_axial_091_PET.jpg', '0543_AD_axial_093_PET.jpg', '0543_AD_axial_092_PET.jpg']
有人可以帮我吗? 谢谢
答案 0 :(得分:3)
您只是从os.listdir(path)
创建的临时列表中删除文件名。如果要从磁盘上完全删除文件,则需要使用os.remove
。
例如:
for filename in os.listdir(path):
images = Image.open(os.path.join(path,filename))
if np.mean(images) < 10:
os.remove(os.path.join(path, filename))