我遇到cv2.imiwrite
有两个文件夹,photos
用于保存普通图像,然后gray
是用于保存已更改的普通照片中的灰度图像的文件夹
我想读取普通图像并更改为灰度,然后保存灰度
这是我的代码
import cv2
import os
import glob
count = 0
os.chdir('./photos')
for file in glob.glob('*.jpg'):
image = cv2.imread(file)
image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imwrite('./gray/grayscale{}.jpg'.format(count), image_gray)
count += 1
image = cv2.imread(file)
有一个数组,因此image_gray = cv2.cvtColor(image, cv2.COLORBGR2GRAY)
也有and数组。但是为什么我的cv2.imwrite
代码没有将灰度图像保存到文件夹?我已经在这个论坛中搜索了答案,但没有一个回答我的问题。任何答案将不胜感激。预先感谢!
答案 0 :(得分:0)
您应检查是否在设计目录中
# Check current working directory.
retval = os.getcwd()
print "Current working directory %s" % retval
确保“灰色”污秽物不存在。我认为您的代码没有问题。
答案 1 :(得分:0)
请不要这样做,尤其是chdir()
等:
os.chdir('./photos')
for file in glob.glob('*.jpg'):
image = cv2.imread(file)
image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imwrite('./gray/grayscale{}.jpg'.format(count), image_gray)
count += 1
相反,您可能会更容易使用:
if not os.path.isdir( 'gray' ) :
os.mkdir( 'gray' ) # make sure the directory exists
for i, file in enumerate(glob.glob('photos/*.jpg')):
image = cv2.imread(file)
image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imwrite('./gray/grayscale_%03d.jpg' % i, image_gray)