数字图像处理实验三
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三图像变换
实验内容:(1)选择一幅图像,进行离散傅里叶变换,再对其进行X 轴与Y轴上的平移,得其离散傅里叶变换,观察原图的傅里叶变换和平移后的傅里叶频谱的对应关系。
(2)选择一幅图像,进行离散傅里叶变换,再对其进行一定角度的旋转,进行离散傅里叶变换。
(3)选择一幅图像,进行离散余弦变换,并对其进行离散余弦反变换,观察其结果。
实验原理:(1)平移性质公式
(2)旋转性质公式
(3)离散余弦变换公式
实验报告要求:给出实验代码,和实验结果图,并对实验结果进行分析。
所用函数:
(1)fft2
fft2函数用于计算二维快速傅立叶变换,其语法格式为:
B = fft2(I)
%返回图象I的二维fft变换矩阵,输入图象I和输出图象B大小相同。
(2)fftshift
MATLAB提供的fftshift函数用于将变换后的图象频谱中心从矩阵的原点移到矩阵的中心,其语法格式为:
B = fftshift(I)
例如,计算图象的二维傅立叶变换,并显示其幅值的结果,其命令格式如下
load imdemos saturn2
imshow(saturn2)
B = fftshift(fft2(saturn2));
imshow(log(abs(B)),[])
(3)strel创建形态学结构元素
具体用法:SE = strel(shape,parameters)
创建由指定形状shape对应的结构元素。其中shape的种类有
arbitrary'、'pair'、'diamond'、'periodicline'、'disk'、'rectangle'、'line'、'square'、'octagon
参数parameters一般控制SE的大小。
例子:se1 = strel('square',6) % 创建6*6的正方形
se2 = strel('line',10,45) % 创建直线长度10,角度45
se3 = strel('disk',15) % 创建圆盘半径15
se4 = strel('ball',15,5) % 创建椭圆体,半径15,高度5
(4)translate偏移结构元素
(5)imdilate灰度图像或二值图像的膨胀运算
功能:对图像实现膨胀操作。(膨胀:给边界添加像素,使区域从四周向外扩大)
用法:IM2 = imdilate(IM,SE) 膨胀灰度,二值,压缩二值图像IM,返回IM2。参数SE为由strel函数返回的结构元素或者结构元素对象组。
(6)imrotate
函数功能:对图像进行旋转操作。
调用格式:
B = imrotate(A,angle)
将图像A(图像的数据矩阵)绕图像的中心点旋转angle度,正数表示逆时针旋转,负数表示顺时针旋转。返回旋转后的图像矩阵。以这种格式调用该函数,该函数默认采用最近邻线性插值(Nearest-neighbor interpolation)。旋转后的图像超出的部分填充0(黑色)。
(7)dct2
功能:二维DCT 变换
格式:B=dct2(A)
B=dct2(A,m,n)
B=dct2(A,[m,n])
说明:B=dct2(A) 计算 A 的DCT 变换 B ,A 与 B 的大小相同;B=dct2(A,m,n) 和B=dct2(A,[m,n]) 通过对A 补0 或剪裁,使B 的大小为m×n。
(8)idct2
功能:DCT 反变换
格式:B=idct2(A)
B=idct2(A,m,n)
B=idct2(A,[m,n])
说明:B=idct2(A) 计算A 的DCT 反变换B ,A 与 B 的大小相同;B=idct2(A,m,n) 和B=idct2(A,[m,n]) 通过对A 补0 或剪裁,使B的大小为m×n。