还在纠结通道数、位深度?实验带你看懂关于灰度图像,二值化图像,彩色图像、图片通道数,位深度的全部内容

您所在的位置:网站首页 如何查看一张图的像素 还在纠结通道数、位深度?实验带你看懂关于灰度图像,二值化图像,彩色图像、图片通道数,位深度的全部内容

还在纠结通道数、位深度?实验带你看懂关于灰度图像,二值化图像,彩色图像、图片通道数,位深度的全部内容

2023-11-08 05:26| 来源: 网络整理| 查看: 265

数据加载相关 前言图片的通道数、位深度单通道三通道四通道通道数之间的转化 二值化图像小结 灰度图像小结 pillow库相关全部代码

前言

首先我们都知道,图像是由一个个像素点组成的。图片在计算机中的存储方式为矩阵存储。我们要采用实验的方式来讲解二值化图像,灰度图像,彩色图像,以及对图片通道数的一些理解。我们首先使用pillow库来加载一张彩色图像

from PIL import Image import numpy as np im=Image.open('cat.jpg') im

在这里插入图片描述 我们使用Image读入的图片不是一个数组,而是一个图片类(ImageFile)。即我们不能直接输出它的数值或形状。但是我们可以将它转化成为一个numpy数组再进行输出。 在这里插入图片描述

接下来,进入我们的实验环节。

图片的通道数、位深度

再讲各类图片之前,我们首先要明确图片的通道数。目前我们见到的图片一般是4通道,3通道,1通道。

位深度=通道数*每个通道所占位数。

单通道

我们所说的灰度图和二值化的图像都是单通道图片。

灰度图的位深度为1*8=8.二值化图像的位深度为1*1=1.

单通道图片,每个像素点的数值表示了黑的程度。

三通道

三通道是用的最多的一种图片了。三通道图的意思是每个像素点都有3个值表示 。位深度=3*8=24.

四通道

四通道图的意思是每个像素点都有4个值表示 ,所以就是4通道。其中4通道图片表示的是RGBA。RGBA是代表Red(红色)Green(绿色)Blue(蓝色)和Alpha。alpha通道,表示透明度,alpha=0表示全透明,alpha=255表示不透明。采用的颜色是RGB,可以属于任何一种RGB颜色空间。位深度=4*3=32. PNG是一种使用RGBA的图像格式。

通道数之间的转化

直接上代码

# 高通道数向低通道数转化 img_gray=img.convert('L') # 将四通道或三通道图片转化为灰度图 img_white=img.convert('1') # 将四通道,三通道,灰度图转化为二值化图片 #低通道数向高通道数转化,主要涉及到灰度图向RGB的转化。 img_color=img_gray.convert('RGB') # 灰度图向三通道图的转化注意这里输出的图片依然是灰色的,但是位深度已经达到24. 二值化图像

二值图像的意思,就是每个图像当中的每个像素点,只能取0或255,其中0为黑,255为白,即非黑即白。我们将我们的彩色图片转化为灰度图并输出。 在这里插入图片描述 我们使用im.convert('1')来将一张图片转化为二值化的图片。通过转化为np数组看到了二值化图片的真正面目。我们保存这张二值化图片img.save('dd.png'),查看它的详细信息。 在这里插入图片描述 我们可以看到,位深度为1,代表每个像素点用1位表示,即非1即0.这就是二值化图像的全部面目了。

小结

我们学会了 彩色图转二值化图片,二值化图片的查看和保存,

灰度图像

在这里插入图片描述 接下来我们查看cat_gray.png的详细信息

在这里插入图片描述 这印证了理论:灰度图是单通道的,且位深度为8。

小结

在这个小结中,我们学习了利用pillow库将彩色图片转化为灰度图片。并通过实验掌握了灰度图的原理。

pillow库

pillow是一个基于python的图像处理标准库。是延续PIL库的一个支持python3.x的一个库。包含了一些图像的处理操作。

相关全部代码 from PIL import Image import numpy as np im=Image.open('cat.jpg') # 加载图片。 im im.shape # im是一个图片类,我们需要手动转化为tensor。 print(len(im.split())) n_im=np.array(im) n_im.shape # 二值化相关 img = im.convert('1') # 图像二值化 img img.save('cat_blackWhite.png') n_img=np.array(img) # 图像转化为array n_img # 灰度图相关 img_gray=im.convert('L') # 将图像转化为灰度图 img_gray #展示图片 img_color=img_gray.convert('RGB') #将灰度图转化为RGB图。 img_color img_color.save('grayToColor.png') img_gray.save('cat_gray.png') #将图片保存 n_img_gray=np.array(img) # 将图片转为np数组 n_img_gray.shape

[1]关于图像的通道、深度等概念

[2]Pytorch中Tensor与各种图像格式的相互转化



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3