当前位置:
文档之家› 2.1 MATLAB图像处理
2.1 MATLAB图像处理
生成图像叠加效果
(1)去除“叠加性”噪音
对于原图象f(x,y),有一个噪音图像集 { g 其中:g
i i
(x ,y) }
i =1,2,...M
(x ,y) = f(x,y) + ei(x,y)
g x , y f x , y e x , y
对于彩色图像,如RGB图像,需要用三维数组来存储;
图像文件格式
MATLAB支持下列图像文件格式: ① bmp(microsoft windows bitmap,位图) ② hdf(hierarchical data format,层次数据) ③ jpeg(joint photographic expert group,静止图像压 缩标准) ④ pcx(paintbrush,画刷格式) ⑤ png(portable network graphics,可移植网络图像) ⑥ tiff(tagged image file format,标记图像文件) ⑦ xwd(x window dump) ⑧ gif(graphics interchange format,图形交换)
图像的缩放
(1)最近邻插值
向后映射时,输出图像的灰度等于在输入图像中离它所 映射位置最近的输入图像的灰度值。
(x,y)
(x+1,y)
P(x0,y0)
(x,y+1) (x+1,y+1)
通过计算与点P(x0,y0)临近 的四个点,并将与点P(x0,y0) 最近的整数坐标点(x,y)的 灰度值取为P(x0,y0)点灰度 近似值。
x1 象 素 移 y 交 映 射 f(x1,y1) (x1,y1)整型 f(x,y) (x,y)非整型 x
y1
图像的缩放
2)向后映射法
通过输出图像像素位置, 计算输入 图像对应像素位置; 根据输入图像相邻四个像素的灰 度值计算该位置像素的灰度值.
x1 象 素 填 y 充 映 射 f(x1,y1) (x1,y1)非整型 f(x,y) (x,y)整型 x
如:I=imread(‘cameraman.tif’); tform=makeform(‘affine’,[1 0 0;0.5 1 0;0 0 1]); J=imtransform(I,tform); imshow(J),figure,imshow(J);
图像的代数运算
图像的加法 图像的减法
矩阵元素赋值
大矩阵可以把小矩阵作为其元素
例:>> A=[A ; 11 12 13]
5
在原矩阵的下方加一行
如何在原矩阵的右边添加一列?
矩阵元素的引用
单个元素的引用
例:>> A(2,3) 利用小括弧和元素所在的位置(下标)
6
x ( i ) :向量 x 中的第 i 个元素 A ( i, j ) :矩阵 A 中的第 i 行,第 j 列元素
imcrop(A,rect)
图像的几何操作
imresize imrotate imcrop
图像的缩放 图像的旋转 图像的剪裁
图像的一般几何变换
imtransform
图像的缩放
1)向前映射法
通过输入图像像素位置, 计算输出 图像对应像素位置; 将该位置像素的灰度值按某种方 式分配到输出图像相邻四个像素.
7
A(i:j, m:n) 表示由矩阵 A 的第 i 到第 j 行和第 m 到第 n 列交叉线上的元素组成的子矩阵。 可利用冒号提取矩阵 的整行或整列。 例:>> A(1, :) >> A(:, 1:3) >> A(:, :)
不同分辨率下的图像
1024 ×1024 → 512 × 512 → 256 × 256 → 128 × 128 → 64 × 64 → 32 × 32
图像的缩放
用最近邻插值和双线性插值的方法分别将老虎放 大1.5倍。
图像的缩放
采用最近邻插值放大1.5倍
采用双线性插值放大1.5倍
B=imtransform(A,TFORM,INTERP)
它根据变换结构(TFORM)变换二维图像A,变换结构 TFORM是由maketform函数或cp2tfom函数返回的, INTERP可以取’nearest’,’bilinear’(默认值)或’bicubic’
混入噪声的图像 原始图像 随机噪声
M个图像的均值为:
1 g ( x, y ) M
f ( x , y ) e ( x, y )
i 1 i i
M
1 f ( x, y ) M
e ( x, y )
i 1 i
矩阵
3
矩阵行与行之间用 分号 分开 直接输入法中,分号可以用 回车 代替
例: >> :命令提示符,不用输入 回车 :运行所输入的命令
矩阵元素赋值
矩阵元素可以是任何数值表达式
例:>> x=[-1.3, sqrt(3), (1+2+3)*4/5]
4
矩阵元素的单独赋值
例:>> x(5)=abs(x(1)) Matlab自动将向量 x 的长度扩展到 5, 并将未赋值部分置零。
MATL Convert a grayscale image to an indexed image; grayslice: Convert a grayscale image, indexed image, or truecolor image, to a binary image; ind2gray: Convert an indexed image to a grayscale image; ind2rgb: Convert an indexed image to a true color image; mat2gray: Convert a data matrix to a grayscale image, by scaling the data; rgb2gray: Convert a true color image to a grayscale image; rgb2ind: Convert a true color image to an indexed image
imadd imsubtract
图像的乘法
图像的除法
immultiply
imdivide
图像的补
imcomplement
图像的绝对值的差 imabsdiff
图像的线性组合
imlincomb
加法运算
1、加法运算
C ( x, y) A( x, y) B( x, y)
主要应用举例:
去除“叠加性”随机噪音
数字图像处理
--------MATLAB图像处理
1、数字图像的基本概念 图像分辨率:图像的采样点数N×M
256*256
128*128 ……
量化级Q:Q=28=256
矩阵
Matlab 的操作对象是 定义矩阵:直接输入法
例:>> A = [1 2 3; 4 5 6; 7 8 9] 矩阵用方括号 “[ ]” 括起 矩阵同一行中的元素之间用 空格 或 逗号 分隔
MATLAB的图像类型
二值图像(Binary):图像的取值为0或1; 索引图像(Indexed, pseudocolor):图像为m*n矩阵 ,矩阵元素的值指向颜色映像表(colormap); 灰度图像(intensity, gray scale, gray level):图为 m*n矩阵,矩阵元素的值指的是灰度值。对single or double矩阵取值范围为[0,1],对uint8矩阵取值范围 为[0,255],对uint16矩阵取值范围为[0,65535],对 uint16矩阵取值范围为[-32768,32768]; 真彩色图像(RGB):图像为m*n*3矩阵;
空间变换
step 2 : 图象在x方向放大c倍,y方向放大d倍。 a x, y cx b x, y dy a x, y c 0 0 x y b x , y 0 d 0 0 0 1 1 1
多个元素的引用:冒号的特殊用法
a:b:c
产生一个由等差序列组成的向量; a 是首项,b 是公 差,c 确定最后一项;若 b=1,则 b 可以省略。
例:>> x=1:2:5 >> y=1:2:6
例:>> x=2:1:5 例:>> x=3:2:1
>> y=2:5
矩阵元素的引用
例:>> x(1:3) >> A(3,1:3)
y1
图像的缩放
两种映射方法的对比
对于向前映射:每个输出图像的灰度要经过多次运算; 对于向后映射:每个输出图像的灰度只要经过一次运算。
实际应用中,更经常采用向后映射法。
其中,根据四个相邻像素灰度值计算某位置的像素灰度 值即为灰度级插值。
图像的缩放
常用的插值方法:
(1)最近邻插值
(2)双线性插值 (3)三次内插法
空间变换
step3: 图象饶原点顺时针旋转 角。 a x, y x cos -ysin b x, y x sin +ycos a x, y cos sin 0 x b x, y sin y cos 0 0 1 1 1 0
数据类型转换函数
Im2uint8