我得到了一个充满图像的数据集。我的目标是将这些图像转换为灰度。我可以用一张图片轻松地做到这一点,但我需要用多张图片来做。这是我的代码;
import cv2
import glob
path = "/path/*.jpg"
for file in glob.glob(path):
img = cv2.imread(file)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('Gray image', gray)
cv2.imwrite('/path/cat' + '_gray.jpg', gray)
当我运行这个脚本时,它只转换一个图像,但我的目标是转换路径中的所有图像。我真的是图像处理和 OpenCv2 模块的初学者。现在已经感谢您的帮助。
最佳答案
'/path/cat' + '_gray.jpg'
总是给你/path/cat_gray.jpg
,无论输入文件名如何。
您可能想在此处使用原始文件名的一部分,您可以使用 os.path
中的函数找到它。模块。
例如:
import cv2
import glob
import os.path
path = "/path/*.jpg"
for file in glob.glob(path):
img = cv2.imread(file)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('Gray image', gray)
basename = os.path.basename(file) # e.g. MyPhoto.jpg
name = os.path.splitext(basename)[0] # e.g. MyPhoto
cv2.imwrite('/path/' + name + '_gray.jpg', gray)
关于python - 在 Python 中使用 OpenCv2 编写多个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60761218/