数据加载相关

  • 前言
  • 图片的通道数、位深度
    • 单通道
    • 三通道
    • 四通道
    • 通道数之间的转化
  • 二值化图像
    • 小结
  • 灰度图像
    • 小结
  • 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与各种图像格式的相互转化

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

  1. python opencv二值化图像_python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘...

    python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘 python opencv 1,读取图像 2,图像变矩阵 3,图像转灰度图像 4,彩色图像是3D数组 5,灰度图像是2 ...

  2. 使用深度学习解决拍照文档复杂背景二值化问题

    前言 1.在手持拍照设备对文档进行拍照时,很容易出现光线不均.阴影.过暗等,或者有些旧的文档,古籍文档都有虫洞.透背.字迹不清现象,为了方便阅读.打印文档,或者OCR识别,这些干扰都对处理结果有很多不 ...

  3. input自适应_【正点原子FPGA连载】第十一章基于OV5640的自适应二值化实验-领航者ZYNQ之HLS 开发指南...

    1)摘自[正点原子]领航者ZYNQ之HLS 开发指南 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手 ...

  4. 2020-2021学年——图像图形编程实践实验1_图像二值化

    图像二值化 实验目的 1.熟练掌握在MATLAB中如何读取图像. 2.掌握如何利用MATLAB来获取图像的大小.颜色.高度.宽度等等相关信息. 3.掌握如何在MATLAB中按照指定要求存储一幅图像的方 ...

  5. linux 正点原子ov5640_【正点原子FPGA连载】第二十六章基于OV5640的二值化实验-摘自【正点原子】领航者 ZYNQ 之嵌入式开发指南 (amobbs.com 阿莫电子论坛)...

    本帖最后由 正点原子 于 2020-10-26 16:21 编辑 QQ群头像.png (1.78 KB) 2020-10-24 10:50 上传5)关注正点原子公众号,获取最新资料 100846rel ...

  6. 数字图像基础——图像通道、空间域表示、图像二值化

    文章目录 一.数字彩色图像的组成结构? 二.数字图像是如何数字化存储的? 三.彩色图像的灰度化? 四.图像二值化 五.opencv实战 1.读取图像及验证图像通道 2.RGB2GRA 3.二值化 一. ...

  7. 多媒体实验 Visual Studio 图像显示与处理 对图像进行二值化、求边缘、增强等处理

    具体代码,图像处理结果,报告,请访问: 多媒体实验VisualStudio图像显示与处理对图像进行二值化.求边缘.增强等处理.zip-讲义文档类资源-CSDN文库 一.实验目的 1.掌握BMP文件格式 ...

  8. c++对8位灰度图进行二值化处理

    /********************************************************************* 对灰度图进行位二值化,输入图像像素部分的宽度和高度以及存储 ...

  9. 数车加工表面质量差?看懂这个8个公式让你和“它”说拜拜

    数车加工表面质量差?看懂这个8个公式让你和"它"说拜拜 模具行业发展到现在,普通车床我们已经是很少见到了,现在都被更加强大.方便的数控车床所替代.那么我们用数车来加工,要怎么保证精 ...

最新文章

  1. R可视化雷达图(Radar Charts)
  2. 在工作迷惘的寒冬感受亲情的温暖。
  3. Ajax+asp.net无刷新验证用户名
  4. 激光雷达与毫米波雷达对比
  5. dotnet core webapi +vue 搭建前后端完全分离web架构(一)
  6. 逃跑吧少年服务器临时维护中,逃跑吧少年—逃跑吧少年5月30日更新 主动技能解锁...
  7. PHP笔记-平润年判断例子
  8. 2017《时间的朋友》思维导图(脑图整理版)
  9. mysql找不到服务_win7系统安装mysql后找不到服务或提示找不到指定文件如何解决...
  10. 速达软件无法打开帐套数据库/一般性网络错误
  11. 前剪枝算法和后剪枝算法区别
  12. 傅立叶变换的实现—MATLAB(纯代码)
  13. BootStrap4中使用图标
  14. 辛普森悖论如何影响AB测试
  15. PEWIN32 PRO site key
  16. MySQL主从部署, master and slave have equal MySQL server UUIDs问题解决
  17. Python爬虫豆瓣电影top250
  18. “超限效应”和“改宗心理效应”
  19. C++如何创建对角矩阵
  20. MobSF移动安全检测框架简述

热门文章

  1. Python报错UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte
  2. 宝能系全面接管南玻 监管部门连发关注函
  3. 社交相亲聊天软件公众号、app一应俱全
  4. 美化页面代码--(如果浏览器页面有代码片段,可以添加高亮美化)
  5. 【无标题】天翼云两个月免费试用及安装宝塔面板流程
  6. 联想哪款服务器性能,联想ThinkServer服务器四大特性抢先看
  7. Python-Django毕业设计医院住院部管理系统(程序+Lw)
  8. 声如其闻,DuerOS中的声音播放
  9. Regular Expression:C++正则表达式库(RE库regex)
  10. width和min-width的区别和差异性比较