Day06-06.图像相关知识介绍
一、图像基本概念图像是由像素点组成的每个像素点的取值范围为: [0, 255] 。像素值越接近于0颜色越暗接近于黑色像素值越接近于255颜色越亮接近于白色。在深度学习中我们使用的图像大多是彩色图彩色图由RGB3个通道组成如下图所示1、二值图像一幅二值图像的二维矩阵仅由0、1两个值构成“0”代表黑色“1”代白色。由于每一像素矩阵中每一元素取值仅有0、1两种可能所以计算机中二值图像的数据类型通常为1个二进制位。二值图像通常用于文字、线条图的扫描识别OCR和掩膜图像的存储。2、灰度图像灰度图像矩阵元素的取值范围通常为[0255]。因此其数据类型一般为8位无符号整数的int8这就是人们经常提到的256灰度图像。“0”表示纯黑色“255”表示纯白色中间的数字从小到大表示由黑到白的过渡色。二值图像可以看成是灰度图像的一个特例。3、索引图像索引图像的文件结构比较复杂除了存放图像的二维矩阵外还包括一个称之为颜色索引矩阵MAP的二维数组。MAP的大小由存放图像的矩阵元素值域决定如矩阵元素值域为[0255]则MAP矩阵的大小为256Ⅹ3用MAP[RGB]表示。MAP中每一行的三个元素分别指定该行对应颜色的红、绿、蓝单色值MAP中每一行对应图像矩阵像素的一个灰度值如某一像素的灰度值为64则该像素就与MAP中的第64行建立了映射关系该像素在屏幕上的实际颜色由第64行的[RGB]组合决定。也就是说图像在屏幕上显示时每一像素的颜色由存放在矩阵中该像素的灰度值作为索引通过检索颜色索引矩阵MAP得到。4、真彩色RGB图像RGB图像与索引图像一样都可以用来表示彩色图像。与索引图像一样它分别用红R、绿G、蓝B三原色的组合来表示每个像素的颜色。但与索引图像不同的是RGB图像每一个像素的颜色值由RGB三原色表示直接存放在图像矩阵中由于每一像素的颜色需由R、G、B三个分量来表示M、N分别表示图像的行列数三个M x N的二维矩阵分别表示各个像素的R、G、B三个颜色分量。RGB图像的数据类型一般为8位无符号整形。注意通道的顺序是 BGR 而不是 RGB。 案例: 演示基础的图像操作. 图像分类: 二值图: 1通道, 每个像素点由0, 1组成 灰度图: 1通道, 每个像素点的范围: [0, 255] 索引图: 1通道, 每个像素点的范围: [0, 255], 像素点表示颜色表的索引 RGB真彩图: 3通道, Red, Green, Blue, 红绿蓝. 涉及到的API: imshow() 基于HWC, 展示图像 imread() 读取图像, 获取HWC imsave() 基于HWC, 保存图片. # 导包 import numpy as np import matplotlib.pyplot as plt import torch # 1. 定义函数, 绘制: 全黑, 全白图. def dm01(): # 1. 定义全黑图片: 像素点越接近0越黑, 越接近255越白. # HWC: H: 高度, W: 宽度, C: 通道. img1 np.zeros((200, 200, 3)) # print(fimg1: {img1}) # 2. 绘制图片. plt.imshow(img1) # plt.axis(off) plt.show() # 2. 定义全白图片. img2 torch.full(size(200, 200, 3), fill_value255) # print(fimg2: {img2}) plt.imshow(img2) # plt.axis(off) plt.show() # 2. 定义函数, 加载图片. def dm02(): # 1. 加载图片. img1 plt.imread(./data/img.jpg) # print(fimg1: {img1}) # print(fimg1.shape: {img1.shape}) # (640, 640, 3), HWC # 2. 保存图像. plt.imsave(./data/img_copy.png, img1) # 3. 展示图像. plt.imshow(img1) plt.show() # 3. 测试 if __name__ __main__: dm01() dm02()二、总结1、图像的构成 由像素点构成【0-255】RGB【HWC】2、图像的加载方法 Plt.imread() Plt.imshow()
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2560335.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!