Matlab图像处理(02)-图像基础
2017-10-22 15:50
197 查看
数据类
Matlab中和IPT中支持的基本数据类型如下:名称 | 描述 |
double | 双精度浮点数,范围-10308~10308 8字节 |
uint8 | 无符号1字节整数,范围[0, 255] |
uint16 | 无符号2字节整数,范围[0, 65535] |
uint32 | 无符号4字节整数,范围[0, 4294967295] |
int8 | 有符号1字节整数,范围[-128, 127] |
int16 | 有符号2字节整数,范围[-32768, 32767] |
int32 | 有符号4字节整数,范围[-2147483648, 2147483648] |
single | 单精度浮点数,范围-1038~1038 4字节 |
char | 字符 |
logical | 值为0或1 |
图像类型
Matlab的IPT(Image Process Toolbox)支持如下四种类型的图像:亮度图像(Intensity images)
二值图像(Binary images)
索引图像(Indexed images)
RGB图像(RGB images)
大多数的单色图像的处理运算是通过二值图像或者亮度图像来进行的。首先学习这两种类型的图像。
亮度图像
一幅亮度图像是一个数据矩阵,其归一化的取值表示亮度。其亮度图像像素都是uint8类或者uint16类,则它们的整数范围分别为「0, 255」和「0, 65535」。若图像是double类,则像素的取值就是浮点数,其归一化亮度图像取值范围就是「0, 1」。二值图像
二值图像在Matlab中具有非常特殊的意义。一幅二值图像是一个取值只有0和1的逻辑数组。因而,一个取值只包含0和1的uint8类数组,在Matlab中并不认为是二值图像。使用logical函数可以把数值数组转化为二值数组。如:B = logical(A);
使用islogical可以测试一个数组是否是逻辑数组:
islogical(A);
术语注释
注意数据类与图像类型之间的差别与联系。提到幅图像时,会说uint8亮度图像。uint8为数据类,亮度为图像类型。数据类间的转换
数据类间的转换使用如下方式:B = data_class_name(A)data_class_name为数据类型。如A为uint8类型数组,B=double(A)会产生一个双精度的数组B。如果C是一个聚会范围为[0, 255]的double数组,命令D=uint8(C)会产生一个uint8类数组。如果C中包含有[0, 255]之外的值,则转换为uint8数组时,会将所有小于0的值转换为0,大于255的值转换为255。
图像类型和类型间的转换
IPT提供了执行必要缩放的函数,进行图像类和类型间进行转换。如f为double的2x2的图像:f = -0.5000 0.5000 0.7500 1.5000执行转换
g = im2uint8(f) g = 0 128 191 255
可以看到,im2uint8将所有输入小于0的值设置为0,而将输入大于1的值设置为255,再将其他数据乘以255。还有其他的转换函数如下:
名称 | 将输入转换为 | 有效的输入图像数据类 |
---|---|---|
im2uint8 | uint8 | logical, uint8, uint16, double |
im2uint16 | uint16 | logical, uint8, uint16, double |
mat2gray | double, 范围[0, 1] | double |
im2double | double | logical, uint8, uint16, double |
im2bw | logical | uint8, uint16, double |
函数mat2gray用于把任意的double类数组转换为归一化的double类数组,如:
g = mat2gray(A, [Amin, Amax])图像g的取值范围在[0, 1]之间,规定小于Amin的值转换为0,大于Amax的值转换为1。如果不给定Amin和Amax参数,则将A中的最小值和最大值分别赋给Amin和Amax。
im2double用于将输入转换为[0, 1]之间的double类。
im2bw用于将亮度图像转换为二值图像:
g = im2bw(f, T)图像f中的小于T的值转换为0,其他值转换为1。域值T是一个[0, 1]之间的值。
相关文章推荐
- Matlab图像处理(02)-图像基础
- matlab图像处理基础
- matlab数字图像/视频处理技术基础 第二篇
- MATLAB图像处理基础知识
- 数字图像处理实验(15):PROJECT 06-02,Pseudo-Color Image Processing 标签: 图像处理MATLAB 2017-05-27 20:53
- Matlab图像处理(01)-Matlab基础
- 图像处理C++基础 02 ——使用读写文件的矩阵乘法
- MATLAB图像处理基础知识
- 数字图像处理实验(4):PROJECT 02-04 [Multiple Uses],Zooming and Shrinking Images by Bilinear Interpolation 标签: 图像处理MATLAB
- matlab图像处理基础知识2(matlab位运算操作)
- MATLAB图像处理基础
- 深度学习FPGA实现基础知识15(Matlab图像处理“卷积”运算)
- 使用matlab处理图像的基础知识
- Image Processing——图像处理教程(二)之MATLAB基础
- MATLAB图像处理基础知识学习总结(MATLAB操作命令)
- 深度学习FPGA实现基础知识16(图像处理中任意核卷积(matlab中conv2函数)的快速实现)
- matlab 最基础的数字图像处理 .
- matlab图像处理基础知识1(双线性插值matlab实现--等比例调整缩放倍数)
- matlab图像处理基础知识3(双线性插值matlab实现--FPGA优化)
- 从Matlab走向图像处理 基础准备