Matlab中图像数据结构的理解
什么是二值图像?什么是灰度图像?
需要学习一下,分辨其区别。并且要知道怎么转换。怎么从一般图片得到。图片存储的原理,在计算机中的存储格式,要了解。
图片数据类型

可以看到图片的读取到软件中之后是存放在一个数据类型为uint8的三维矩阵中
第三维大小是3,我觉得是对应RGB三通道。所以第一维和第二维是图像的二维空间分布点,对应385×512个像素点,每个点有R、G、B三色通道的对应饱和值。
感觉很快就可以理解二值图像的意思了!!

可以看到灰度图在软件中就是一个数据类型为uint8的二维矩阵,每个点就对应一个值,范围从0~255。表示白度。0是纯黑色,255是纯白色。
逻辑运算得到的自然就是逻辑矩阵,二值图就对应逻辑矩阵。

那么二值图的逻辑运算就更好理解了!
真彩色图像 RGB 转成灰度图
1 | I = rgb2gray(RGB); |
1 | figure |
从实验结果可以看出来
调高对比度,通常是整体调暗,暗的暗更多,亮的暗一点。整体数值都减小,暗部减少的更多。
降低对比度,反其道而行之。整体调亮,整体数值都增大,暗部增大的更多(整体调暗,整体数值都减小,亮部减少的更多。)
调亮则 伽马小于1,调暗则伽马大于1。伽马与灰度值之间没发现明确关系。看了下I4和I的数值,没有找到0.6的比例关系。
图像的解析其实也体现了微积分的思想。将一张图片(整体)分割成若干个像素点(单元),若干个像素点有序排布(整合)构成图片。
调整每个像素点的色彩值(RGB或者灰度值)对图片进行处理。
只有一个值,处理图片的能力有限。比如只能处理灰度图片。
对于真彩色图的处理
局部视角:对于每个像素点,将所有颜色分割成三原色,三原色的强度值对应RGB三通道的值,通过分别调整三通道的值,再整合可以得到任意颜色。 任意改变像素点的色彩
整体视角:应用到一张图片中。通过对原图进行分析,通过一个映射关系,有规律地调整图片的所有点的像素颜色。处理后的图经过反映射又能回到原图。(理论上。实际可能有精度损失) 任意改变图片的色彩
可以看到,图片的处理和解析的过程,与微分再积分的过程非常相似。将大问题切割成小问题,解决小问题,整合构成大问题的解决方案。
有了这样的微积分思想之后,照片的信息在计算机中的存储也就可以理解了。
计算机数据与图片信息的对应关系:
真彩色图:
- 空间布局,二维矩阵,对应像素点的相对空间位置
- 第三维大小是3,对应图片色彩强度RGB三通道
- 三层空间位置上的值,对应像素点的R/G/B强度值