我有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
。请告诉我如何获得原始名称以及经过修改的名称?
最佳答案
要从给定的文件路径中仅提取文件名,可以使用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
关于python - 引入高斯模糊后,以原始名称保存多张图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56825169/