我正在尝试保存图像转换成灰度后,从一个文件夹到另一个。 当我运行代码时,它会将文件保存在同一个文件夹中,并制作所有图像的副本。 这是我的代码,请指导我的问题所在。。。
import glob
import cv2
import os
spath=r"C:\Users\usama\Documents\FYP-Data\FYP Project Data\hamza\*.png"
dpath=r"C:\Users\usama\Documents\FYP-Data\FYP Project Data\grayscale images\*.png"
files = os.listdir(spath)
for filename in glob.glob(r'C:\Users\usama\Documents\FYP-Data\FYP Project Data\hamza\*.png'):
print(filename)
img=cv2.imread(filename)
rl=cv2.resize(img, (40,50))
gray_image = cv2.cvtColor(rl, cv2.COLOR_BGR2GRAY)
cv2.imwrite(os.path.join(dpath,filename), gray_image)
如果您将完整路径名传递给glob.glob(),那么它将返回结果文件的完整路径,而不仅仅是文件名。
这意味着在代码的这个循环中:
for filename in glob.glob(r'C:\Users\usama\Documents\FYP-Data\FYP Project Data\hamza\*.png'):
filename是一个完整路径,例如C:\users\usama\documents\fyp-data\fyp Project data\hamza\myfile1.png
。
然后,在循环的后面调用cv2.imwrite(os.path.join(dpath,filename),gray_image)
时,您试图将C:\users\usama\documents\fyp-data\fyp项目数据\grayscale images\*.png
和C:\users\usama\documents\fyp-data\fyp项目数据\hamza\myfile1.png
连接在一起,这是错误的原因。
我看不出这段代码实际上是怎么写任何文件的,不管是重复还是不重复。