还在纠结通道数、位深度?实验带你看懂关于灰度图像,二值化图像,彩色图像、图片通道数,位深度的全部内容
数据加载相关
- 前言
- 图片的通道数、位深度
- 单通道
- 三通道
- 四通道
- 通道数之间的转化
- 二值化图像
- 小结
- 灰度图像
- 小结
- 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与各种图像格式的相互转化
还在纠结通道数、位深度?实验带你看懂关于灰度图像,二值化图像,彩色图像、图片通道数,位深度的全部内容相关推荐
- python opencv二值化图像_python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘...
python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘 python opencv 1,读取图像 2,图像变矩阵 3,图像转灰度图像 4,彩色图像是3D数组 5,灰度图像是2 ...
- 使用深度学习解决拍照文档复杂背景二值化问题
前言 1.在手持拍照设备对文档进行拍照时,很容易出现光线不均.阴影.过暗等,或者有些旧的文档,古籍文档都有虫洞.透背.字迹不清现象,为了方便阅读.打印文档,或者OCR识别,这些干扰都对处理结果有很多不 ...
- input自适应_【正点原子FPGA连载】第十一章基于OV5640的自适应二值化实验-领航者ZYNQ之HLS 开发指南...
1)摘自[正点原子]领航者ZYNQ之HLS 开发指南 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手 ...
- 2020-2021学年——图像图形编程实践实验1_图像二值化
图像二值化 实验目的 1.熟练掌握在MATLAB中如何读取图像. 2.掌握如何利用MATLAB来获取图像的大小.颜色.高度.宽度等等相关信息. 3.掌握如何在MATLAB中按照指定要求存储一幅图像的方 ...
- linux 正点原子ov5640_【正点原子FPGA连载】第二十六章基于OV5640的二值化实验-摘自【正点原子】领航者 ZYNQ 之嵌入式开发指南 (amobbs.com 阿莫电子论坛)...
本帖最后由 正点原子 于 2020-10-26 16:21 编辑 QQ群头像.png (1.78 KB) 2020-10-24 10:50 上传5)关注正点原子公众号,获取最新资料 100846rel ...
- 数字图像基础——图像通道、空间域表示、图像二值化
文章目录 一.数字彩色图像的组成结构? 二.数字图像是如何数字化存储的? 三.彩色图像的灰度化? 四.图像二值化 五.opencv实战 1.读取图像及验证图像通道 2.RGB2GRA 3.二值化 一. ...
- 多媒体实验 Visual Studio 图像显示与处理 对图像进行二值化、求边缘、增强等处理
具体代码,图像处理结果,报告,请访问: 多媒体实验VisualStudio图像显示与处理对图像进行二值化.求边缘.增强等处理.zip-讲义文档类资源-CSDN文库 一.实验目的 1.掌握BMP文件格式 ...
- c++对8位灰度图进行二值化处理
/********************************************************************* 对灰度图进行位二值化,输入图像像素部分的宽度和高度以及存储 ...
- 数车加工表面质量差?看懂这个8个公式让你和“它”说拜拜
数车加工表面质量差?看懂这个8个公式让你和"它"说拜拜 模具行业发展到现在,普通车床我们已经是很少见到了,现在都被更加强大.方便的数控车床所替代.那么我们用数车来加工,要怎么保证精 ...
最新文章
- R可视化雷达图(Radar Charts)
- 在工作迷惘的寒冬感受亲情的温暖。
- Ajax+asp.net无刷新验证用户名
- 激光雷达与毫米波雷达对比
- dotnet core webapi +vue 搭建前后端完全分离web架构(一)
- 逃跑吧少年服务器临时维护中,逃跑吧少年—逃跑吧少年5月30日更新 主动技能解锁...
- PHP笔记-平润年判断例子
- 2017《时间的朋友》思维导图(脑图整理版)
- mysql找不到服务_win7系统安装mysql后找不到服务或提示找不到指定文件如何解决...
- 速达软件无法打开帐套数据库/一般性网络错误
- 前剪枝算法和后剪枝算法区别
- 傅立叶变换的实现—MATLAB(纯代码)
- BootStrap4中使用图标
- 辛普森悖论如何影响AB测试
- PEWIN32 PRO site key
- MySQL主从部署, master and slave have equal MySQL server UUIDs问题解决
- Python爬虫豆瓣电影top250
- “超限效应”和“改宗心理效应”
- C++如何创建对角矩阵
- MobSF移动安全检测框架简述
热门文章
- Python报错UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte
- 宝能系全面接管南玻 监管部门连发关注函
- 社交相亲聊天软件公众号、app一应俱全
- 美化页面代码--(如果浏览器页面有代码片段,可以添加高亮美化)
- 【无标题】天翼云两个月免费试用及安装宝塔面板流程
- 联想哪款服务器性能,联想ThinkServer服务器四大特性抢先看
- Python-Django毕业设计医院住院部管理系统(程序+Lw)
- 声如其闻,DuerOS中的声音播放
- Regular Expression:C++正则表达式库(RE库regex)
- width和min-width的区别和差异性比较