我有Python代码,该代码从名为Disparity的文件夹中读取54张图像,并将高斯模糊应用于这些图像,然后将它们写入一个位置。代码如下:
path = "Disparity/*.png"
for bb,file in enumerate (glob.glob(path)):
a = cv2.imread(file)
blur = cv2.GaussianBlur(a, (5, 5), random.randint(3, 10))
cv2.imwrite('GaussianBlur{}.jpg'.format(bb), blur)
运行此代码后,我期望它读取的第一个图像为a.png
,第二个图像为b.png
。
这两个图像应另存为a_GaussianBlur0.jpg
和b_GaussianBlur.jpg
。
请告诉我如何获得原始名称以及经过修改的名称?
答案 0 :(得分:1)
要从给定的文件路径中仅提取文件名,可以使用Python os.path.basename()
函数。这也将给您扩展。然后os.path.splitext()
可以仅返回基本文件名。然后可以将其用于构建新的输出文件名:
import os
path = "Disparity/*.png"
for index, filename in enumerate(glob.glob(path)):
a = cv2.imread(filename)
blur = cv2.GaussianBlur(a, (5, 5), random.randint(3, 10))
basename = os.path.splitext(os.path.basename(filename))[0]
cv2.imwrite(f'{basename}_Gaussian{index}.png')
因此,如果您有三个文件['abc.png', 'def.png', 'ghi.png']
,则输出文件名将为:
abc_Gussian0.png
def_Gussian1.png
ghi_Gussian2.png
答案 1 :(得分:0)
我想回答自己的问题... 我必须在代码中进行以下更改:
最后一行代码是:-> cv2.imwrite('GaussianBlur {}。jpg'.format(bb),blur)
这应该像:-> cv2.imwrite(file +'GaussianBlur {}。jpg'.format(bb),blur)
我在这里添加了文件,因为从Disparity文件夹读取的文件的所有名称都在File变量内。通过添加文件,我实际上是将原始名称添加到单个图像中