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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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_Image Processing - Fatal编程技术网

Python 如何在文件夹中的每个图像上运行相同的代码?

Python 如何在文件夹中的每个图像上运行相同的代码?,python,image-processing,Python,Image Processing,我有一个分析图像的代码。代码一次只分析一个图像,然后在shell中显示结果分析: %matplotlib inline from matplotlib import pyplot as plt FILEPATH = 'AnomalousImages/' shortname = '3rd.png' imagefile = FILEPATH+shortname ggimg = cv2.imread(imagefile,0) maxintensity = np.amax(ggimg) enh

我有一个分析图像的代码。代码一次只分析一个图像,然后在shell中显示结果分析:

%matplotlib inline

from matplotlib import pyplot as plt 

FILEPATH = 'AnomalousImages/'
shortname = '3rd.png'
imagefile = FILEPATH+shortname
ggimg = cv2.imread(imagefile,0) 

maxintensity = np.amax(ggimg)
enhancefactor = 255./maxintensity
temp = enhancefactor*ggimg
hhimg = temp.astype(int)

print('Max intensity = ',maxintensity)
print('Enhancement factor = {0:.3f}'.format(enhancefactor))
print('Image dimensions',hhimg.shape)
plt.imshow(hhimg,cmap = 'gray')

plt.show()


brightpixels=np.nonzero(ggimg>THRESHOLD2-1)
numbright = len(brightpixels[0])
print('numbright = ',numbright)
if numbright > 0:
    for i in range(0,numbright):
        print('(',brightpixels[0][i],brightpixels[1][i],ggimg[brightpixels[0][i],brightpixels[1][i]],')',end='')

问题是,FILEPATH文件夹中有100多个图像,我需要为该文件夹中的每个图像运行此代码。我不想一次一个地为每个图像运行这段代码,而是想一次完成所有这些操作,但我不知道如何完成

我很确定这是一个非常基本的任务,但我是一个非常初级的程序员。我很确定我必须使用for循环,并且一直在乱搞代码,试图自己解决它,但没有用


提前谢谢

您需要使用glob模块,这将允许您以列表的形式获取文件夹中每个文件的路径,然后可以对其进行迭代

from glob import glob

image_list = glob(‘AnomalousImages/*’)

for image in image list:
...

不确定,但请看一下
os
模块,因为有一个函数可以列出目录中的所有文件,这样您就可以使用它,然后循环查看每个列出的文件。这是一个可能的解决方案。在获得该列表后,您可以循环查看itAm中的每个项目。我本想按照最初编写的方式运行代码,除了您发送的glob模块下的缩进?因为我试过了,但没有任何结果。我认为这是因为我使用的是Jupyter笔记本,而不是空闲的笔记本,所以我尝试将打印功能从glob模块下面移出,然后它开始给我错误消息。