python - cv2.imwrite 不保存图像

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

最佳答案

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

关于python - cv2.imwrite 不保存图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58653038/

相关文章:

java - 将 openCV 与 jsp 一起使用会导致 UnsatisfiedLinkError?

android - 在android opencv项目中构建错误?

python - 在选择图像轮廓时如何避免对图像(条形图)进行分组?

python - OpenCV:打破组件之间的单像素桥

python - 类型错误 : Required argument 'mat' (pos 2) not found

python - TensorFlow:如果我在图形中处理二次计算,是否会消耗更多内存?

Python三元执行顺序

python - 通过添加列组来创建新列

java - 计算机视觉 - 使用 OpenCV 过滤凸包和凸面缺陷

python - Pandas:将 CSV 中的 x 轴日期映射到 y 轴