Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 遍历目录和子目录中的所有图像,以执行单个图像的平均强度_Python - Fatal编程技术网

Python 遍历目录和子目录中的所有图像,以执行单个图像的平均强度

Python 遍历目录和子目录中的所有图像,以执行单个图像的平均强度,python,Python,如果图像位于单个目录中,下面的代码可以正常工作 from skimage import io, img_as_float import matplotlib.image as mpimg import os import pandas as pd def load_images(folder): images = [] data = [] for filename in os.listdir(folder): img =

如果图像位于单个目录中,下面的代码可以正常工作

from skimage import io, img_as_float
    import matplotlib.image as mpimg
    import os
    import pandas as pd    

def load_images(folder):
    images = []
    data = []
    for filename in os.listdir(folder):
        img = mpimg.imread(os.path.join(folder, filename))
        img = img_as_float(img)
        if img is not None:
            images.append(img)
        if(np.mean(img) < 0.1):
            print filename
            data.append((folder, filename))
            df = pd.DataFrame(data, columns=['Folder', 'File'])
    return df

df = load_images('C:/Data/Testing')
df.to_csv('final.csv')
从skimage导入io,img_作为浮点数
将matplotlib.image导入为mpimg
导入操作系统
作为pd进口熊猫
def load_图像(文件夹):
图像=[]
数据=[]
对于os.listdir(文件夹)中的文件名:
img=mpimg.imread(os.path.join(文件夹,文件名))
img=img\u作为浮点数(img)
如果img不是无:
images.append(img)
如果(np.平均值(img)<0.1):
打印文件名
data.append((文件夹,文件名))
df=pd.DataFrame(数据,列=['Folder','File'])
返回df
df=加载图像('C:/数据/测试')
df.to_csv('final.csv'))

如果我的“C:/Data/Testing”文件夹有许多子文件夹,并且子文件夹中有图像文件,如何处理它?

如果有人正在查看此问题,以下是答案:

from skimage import io, img_as_float
import matplotlib.image as mpimg
import os
import pandas as pd

def load_images(n):
    images = []
    data = []
    for dirs in n:
        for filename in os.listdir(dirs):
            img = mpimg.imread(os.path.join(dirs, filename))
            img = img_as_float(img)
            if img is not None:
                images.append(img)
            if(np.mean(img) < 0.1):
                print filename
                data.append((dirs, filename))
                df = pd.DataFrame(data, columns=['Folder', 'File'])
    return df

from glob import glob
folder = glob("C:/Data/Testing/*/")
df = load_images(folder)
从skimage导入io,img_作为浮点数
将matplotlib.image导入为mpimg
导入操作系统
作为pd进口熊猫
def加载_图像(n):
图像=[]
数据=[]
对于n中的dir:
对于os.listdir(dirs)中的文件名:
img=mpimg.imread(os.path.join(dirs,filename))
img=img\u作为浮点数(img)
如果img不是无:
images.append(img)
如果(np.平均值(img)<0.1):
打印文件名
data.append((目录,文件名))
df=pd.DataFrame(数据,列=['Folder','File'])
返回df
从全局导入全局
folder=glob(“C:/Data/Testing/*/”)
df=加载_图像(文件夹)

我希望这能有所帮助。

如果有人看到这个问题,下面是答案:

from skimage import io, img_as_float
import matplotlib.image as mpimg
import os
import pandas as pd

def load_images(n):
    images = []
    data = []
    for dirs in n:
        for filename in os.listdir(dirs):
            img = mpimg.imread(os.path.join(dirs, filename))
            img = img_as_float(img)
            if img is not None:
                images.append(img)
            if(np.mean(img) < 0.1):
                print filename
                data.append((dirs, filename))
                df = pd.DataFrame(data, columns=['Folder', 'File'])
    return df

from glob import glob
folder = glob("C:/Data/Testing/*/")
df = load_images(folder)
从skimage导入io,img_作为浮点数
将matplotlib.image导入为mpimg
导入操作系统
作为pd进口熊猫
def加载_图像(n):
图像=[]
数据=[]
对于n中的dir:
对于os.listdir(dirs)中的文件名:
img=mpimg.imread(os.path.join(dirs,filename))
img=img\u作为浮点数(img)
如果img不是无:
images.append(img)
如果(np.平均值(img)<0.1):
打印文件名
data.append((目录,文件名))
df=pd.DataFrame(数据,列=['Folder','File'])
返回df
从全局导入全局
folder=glob(“C:/Data/Testing/*/”)
df=加载_图像(文件夹)

我希望这会有所帮助。

您似乎忽略了上面的注释,这些注释解释了您可以对单个目录使用
os.scandir
,或者使用
os.walk
递归扫描其所有子目录。一个小时后,这句话仍然正确,它准确地告诉了你现在该怎么做。@abarnert Ohh可能跳过了它,让我试试你的建议。你似乎忽略了上面的注释,这些注释解释了你可以对单个目录使用
os.scandir
,或者使用
os.walk
递归扫描其所有子目录。一个小时后,这句话仍然正确,它准确地告诉了你现在要做什么。@abarnert Ohh可能已经跳过了,让我试试你推荐的。。