cv2.imwrite 没有保存图片

cv2.imwrite not saving image

我有一个问题 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) 也有一个数组。但为什么我的 cv2.imwrite 代码没有将灰度图像保存到文件夹中?我在这个论坛中搜索了答案,但 none 回答了我的问题。任何答案将不胜感激。提前致谢!

你应该检查你是否在设计的目录中

# Check current working directory.
retval = os.getcwd()
print "Current working directory %s" % retval

请确认 'gray' 文件夹是否存在。我觉得你的代码没有问题。

请不要这样做,尤其是 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)