cv2.imwrite不保存图像

时间:2019-11-01 01:23:24

标签: python opencv cv2

我遇到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代码没有将灰度图像保存到文件夹?我已经在这个论坛中搜索了答案,但没有一个回答我的问题。任何答案将不胜感激。预先感谢!

2 个答案:

答案 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)