当前位置:文档之家› 数字图像处理技术MATLAB图像处理简介.

数字图像处理技术MATLAB图像处理简介.


quality = 100
quality = 50
quality = 5
7
MATLAB图像处理基础
• 显示图像信息: >> imfinfo rose.jpg
8
MATLAB图像处理基础
• 计算压缩率:将图像信息存储在结构变量中以方 便运算。
>> >> >> >> K = imfinfo('rose.jpg'); image_bytes = K.Width*K.Height*K.BitDepth/8; compressed_bytes = K.FileSize; compression_ratio = image_bytes/compressed_bytes
13
MATLAB图像处理基础
• 将double类型任意矩阵转换为double类型图像: g = mat2gray(A, [Amin, Amax]); A中小于Amin的数据变为0,大于Amax的数据变为1。 g = mat2gray(A); 则将Amin和 Amax分别设为A 中元素的最小值和最大值。 • im2double将图像转换为double类型。如果输入数据已经 是double类型,则不对输入数据做任何改变。因此,对于 double类型的图像转换,应该使用mat2gray。
MATLAB图像处理基础
• 四. MATLAB中的数据类型:
类型名称 描述
double uint8
uint16 uint32 int8 int16 int32 single char logical
双精度浮点类型,8字节(MATLAB数值运算基本类型) 无符号8位整数(8位数字图像所用类型)
无符号16位整数(16位数字图像所用类型) 无符号32位整数 有符号8位整数 有符号16位整数 有符号32位整数 单精度浮点类型,4字节 字符类型,2字节(Unicode编码) 逻辑类型(0或1),1字节(二值图像所用数据类型)
1
MATLAB图像处理基础
• 典型桌面:
2
MATLAB图像处理基础
• 一. 读取图像:将图像rose-orginal.tif读入图像数组f
>> f = imread('.\rose-original.tif');
• 显示图像大小信息:
>> size(f) ans = 1024 >> [M, N] = size(f); 1024
• 或者将大小信息赋给变量:
• whos显示更为详细的信息:
>> whos f Name Size Bytes Class f 1024x1024 1048576 uint8 array Grand total is 1048576 elements using 1048576 bytes
3
MATLAB图像处理基础
• 二. 显示图像:
>> imshow(f)
• 指定显示的灰度范围
>> figure, imshow(f, [100 200])
• 情况下显示图像的整个 动态范围:
>> figure, imshow(f, [ ])
4
MATLAB图像处理基础
利用imshow改善图像;> imshow(h) • 改善动态范围: >> imshow(h, [ ])
5
MATLAB图像处理基础
• 以交互方式显示像素值: >> pixval • 利用pixval显示像素之间 距离:按下鼠标左键并拖 动
6
MATLAB图像处理基础
• 三. 将图像写入磁盘: >> imwrite(f, 'rose.jpg') • 对于JPEG压缩格式,可指定质量因子: >> imwrite(f, 'rose.jpg', 'quality', 25)
>> h = uint8([25 50; 128 200]); >> g = im2double(h) g = 0.0980 0.5020 0.1961 0.7843 im2double将输入的uint8型数据 除以255,将输入的uint16型数 据除以65535。
compression_ratio =
30.0340
>>
9
文件读写
• 无格式文件数据的读写: fopen, fread, fwrite, fclose • mat文件数据的读写: load, save • 有格式文件数据的读写:imread, imwrite • 剪切任意形状区域:imshow(f), pixval, c=[354 858 2147 2290 776 367], r=[3 7 363 2901 3262 3258], BW=roipoly(f,c,r), b=f.*uint8(BW), imview(b)
MATLAB图像处理基础
• MATLAB语言的特点:
– 交互性:编程、数据处理、可视化输出 – 便于矩阵运算和图像处理 – 丰富的函数库和在线资源
• MATLAB的图像处理工具箱(Image Processing Toolbox, IPT)包含了许多图像 处理相关函数以方便数字图像处理编程, 是构建图像处理原型系统的理想环境。
12
MATLAB图像处理基础
• 六. 图像类型的相互转换:下表中的函数在图像类型转换 中会进行必要的数据比例变换。
>> f = [-0.5 0.5;0.75 1.5] f = -0.5000 0.5000 0.7500 1.5000 >> g = im2uint8(f) im2unit8将输入double类型数据中小于0的 g = 数转换为0,大于1的数转换为255,其余数 0 128 据乘以255再四舍五入到最近整数。 191 255
11
数 值 类 型
MATLAB图像处理基础
• 五. MATLAB中的图像类型: – 灰度图像(intensity images):元素取值代表灰度级的 矩阵。采用不同数据类型时取值范围:uint8: [0, 255], uint16: [0, 65535], double: [0, 1]。 – 二值图像(binary images):元素取值为0或1的逻辑 矩阵。 注意:取值0或1的数值类型矩阵在MATLAB中不认为 是二值图像,必须进行转换: B = logical(A) 上述运算将A中所有非0值变为逻辑值1。
相关主题