用python将文件内所有图片转为灰度图并保存

一个文件夹中有多张彩色度,或者24位的灰度图,需要批量的保存为8位的灰度图

因为对python中地址相关指令的不熟悉,整这么个小程序都用了很久,也发现csdn中,有很多人的程序都不能用,服了。

在下面放上两个版本的,想法都不同,但作用一样,且一个是在原文件目录保存,一个是保存在新的文件夹下,更改路径就可以使用了。

没有加图像显示,不需要显示,需要显示的可以自己叫cv.imshow自己看。

需要注意:
1:地址中到底用“/”还是“\”。
2:不可以写成file_pathname + ‘/’ + filename+'GRAY’的形式。
3:不可以前面写outdir=os.mkdir,然后后面直接想在路径写outdir,想直接用地址,不符合语法。

方案1:

import os
import cv2
import numpy as np

def read_path(file_pathname):
    for filename in os.listdir(file_pathname):                        # 返回这一路径下的所有文件名,得到的是一个列表
        print(filename)                                               # 这里print一下是为了验证os.listdir返回的不是绝对路径
        img = cv2.imread(file_pathname+'/'+filename, 1)               # 在前面要加上文件夹的路径,1是将图片按照彩色图来读
        gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)              # 彩色图转灰度图
        cv2.imwrite(file_pathname + '/GRAY' + filename, gray_img)     # 保存灰度图;此处如果不改文件名,会覆盖原先的文件

read_path("C:/Users/lenovo/Desktop/IMAGE/LEFT")                       # 图片目录

方案2:

import os
import cv2
import numpy as np

def convert2gray(filename):                                     # 将彩色图转灰度图的函数
    img = cv2.imread(file_path+'/'+filename, 1)                 # 1是以彩色图方式去读
    gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    cv2.imwrite(out_path + '/GRAY' + filename, gray_img)        # 保存在新文件夹下,且图名中加GRAY

file_path = "C:/Users/lenovo/Desktop/IMAGE/RIGHT"               # 输入文件夹
os.mkdir("C:/Users/lenovo/Desktop/IMAGE/RIGHT_GRAY")            # 建立新的目录
out_path ="C:/Users/lenovo/Desktop/IMAGE/RIGHT_GRAY"            # 设置为新目录为输出文件夹

for filename in os.listdir(file_path):                          # 遍历输入路径,得到图片名
    print(filename)
    convert2gray(filename)

你可能感兴趣的:(双目视觉)