栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python PIL读取图像转换为灰度图及二值图像

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python PIL读取图像转换为灰度图及二值图像

目录

以下操作都是在windows环境下进行。 

一、读取数据

1. 读取单个图像:

2. 批量读取:

3. 看一下是否读取成功:

二、模式“RGB”转换为‘L’模式灰度图

三、模式“RGB”转换为‘1’模式二值图像

完整代码 

参考链接


以下操作都是在windows环境下进行。 

一、读取数据

1. 读取单个图像:
from PIL import Image #或直接import Image
im = Image.open('00001.jpg')

2. 批量读取:
import os
def get_path(path):
    '''返回目录中所有PNG图像的文件名列表'''
    return [os.path.join(path,f) for f in os.listdir(path) if f.endswith('.png')]
pth = get_path('../mask_dir_Class')   # get_path(path)中path参数是自己的文件夹目录,例如('../mask_dir_Class)

3. 看一下是否读取成功:
im.show()

二、模式“RGB”转换为‘L’模式灰度图

模式“L”为灰色图像,它的每个像素用8个bit表示,0表示黑,255表示白,其他数字表示不同的灰度。在PIL中,从模式“RGB”转换为“L”模式是按照下面的公式转换的:

L = R * 299/1000 + G * 587/1000+ B * 114/1000

将图片转换为灰度图并保存到自己的文件夹(我这里是在上一级目录新建了一个灰度图文件夹): 

img = im.convert('L') 
if not os.path.exists('../灰度图'):
        os.mkdir('../灰度图')
img.save('../灰度图/' + img.split('\')[-1])

以上代码把00001.png打开并转换成灰度图(像素值在0-255之间),然后保存成00001.png格式。可以把上一行代码中'00001.png'改成路径加文件名,就可以保存到自己想要保存的地方了。

 原图(左)和灰度图(右):

三、模式“RGB”转换为‘1’模式二值图像

模式“1”为二值图像,非黑即白。但是它每个像素用8个bit表示,0表示黑,255表示白。下面我们将00001.png图像转换为“1”图像。

将图片转换为二值图像并保存到自己的文件夹(我这里是在上一级目录新建了一个二值图像文件夹): 

img = im.convert('1') 
if not os.path.exists('../二值图像'):
        os.mkdir('../二值图像')
img.save('../二值图像/' + img.split('\')[-1])

 原图(左)和二值图像(右):

完整代码 
from PIL import Image #或直接import Image
import os
def get_path(path):
    '''返回目录中所有PNG图像的文件名列表'''
    return [os.path.join(path,f) for f in os.listdir(path) if f.endswith('.png')]
pth = get_path('../mask_dir_Class')
for img in pth:
    im = Image.open(img).convert('L')
    # im.show()
    if not os.path.exists('../灰度图'):
        os.mkdir('../灰度图')
    im.save('../灰度图/' + img.split('\')[-1])
print('灰度图 Save OK!')
for img in pth:
    im = Image.open(img).convert('1')
    # im.show()
    if not os.path.exists('../二值图像'):
        os.mkdir('../二值图像')
    im.save('../二值图像/' + img.split('\')[-1])
print('二值图像 Save OK!')

参考链接

Python图像处理库PIL中图像格式转换(一)_icamera0的博客-CSDN博客_python图片格式转换

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/357213.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号