实验报告二——数字图像变换技术

一、实验目的和要求

1、了解和掌握图像处理工具Matlab,熟悉基于Matlab的图像处理函数,并为下一步编程进行图像处理打下基础。

2、理解色彩的概念,掌握图像代数运算,几何变换方法。

二、实验内容简介

1、图像的数学运算

2、图像的几何变换

3、图像的Hough变换

4、图像的傅里叶变换

5、图像的离散余弦变换

6、基于数字形态的图像变换

三、实验步骤

 1、对图像进行二维快速傅里叶变换

  

2、对图像 autumn.tif 进行二维FFT变换并取阈值后再进行二维快速逆FFT

( 可以使用这个方法进行图像压缩且较少影响图像效果)

3、对图像进行2D离散余弦变换,并显示变换后的图像

4、对图像进行2D离散反余弦变换

 

5、利用一个结构元素膨胀灰度图像

 (下图为利用圆盘进行腐蚀的效果图)

6、 指纹图像的形态学处理

 四、习题

1、对图2-9的指纹图像进行缩放、旋转和插值运算。

2、 对图2-19的指纹图像进行傅里叶变换和离散余弦变换。

五、实验心得

1、这章主要学习了图像变换的方法,图像的几何变换是将一幅图像中的坐标映射到另外一幅图像中的新坐标位置,它不改变图像的像素值,只是改变像素所在的几何位置,使原始图像按照需要产生位置、形状和大小的变换。主要学习了图像的缩放,平移和旋转,当然,运用插值运算也可以实现上述的效果。

2、了解了霍夫变换、傅里叶变换和离散余弦变换的基本原理和实现方法。在图像空间的图像以某种形式转换到另外一些空间对图像进行加工,同时也可以进行反变换,不同的函数和求解方法将会产生不同的效果。

3、以下是用到的函数总结:

(1)图像的缩放运算

B = imresize(A,scale):将图像A以scale为倍数缩放为

= imresize(A,[numrows,numcols]):将图像A缩放为,的行和列分别为numrows和numcols

[Y newmap] = imresize(X,map,scale):将索引图像X缩放为Y

[…] = imresuze(…,method):对索引图像进行缩放,method指定插值方法或插值使用的核

(2)图像的平移运算

SE2 = translate(SE,V):SE 是一个用strel函数创建的N维数组;V 是一个N维向量;它说明了每一维需要平移的量;是与SE大小相同的结构元素数组。

(3)图像的旋转运算

B = imrotate(A,angle,method)

B = imrotate(A,angle,method,'crop')

angle表示图像旋转的角度;method用于指定在旋转图像时所使用的算法。crop指定旋转后的图像是否与输入图像保持相同尺寸

(4)图像的插值运算

'nearest',最近邻插值算法;'bilinear'双线性插值算法;'bicubic'双三次插值算法;

B = imresize(A,m):返回的图像的长宽是图像A的长宽的m倍。m>1,放大图像,m<1,缩小图像

B = imresize(A,[numrows,numcols]):numrows和numcols分别指定目标图像的高度和宽度;

[…] = imresize(…,method) :method参数用于指定改变图像尺寸时所使用的算法,有以下几种:'nearest'、'bilinear'、'bicubic'

(5)图像的Hough变换

Hough变换可以提取图像的边界线,将图像空间转换到参数空间上解决,会利用一些数学方程。

(6)图像的傅里叶变换

傅里叶变换将图像问题转换为频率问题,也可以进行逆运算,通过傅里叶变换可以进行图像压缩且较少地影响图像效果。

Y = fft2(X),返回X的二维傅里叶变换

Y = fft2(X,m,n) ,通过对X补0或剪裁,使X的大小为m×n,变换后的大小也是m×n。

X = ifft2(Y),返回Y的二维傅里叶逆变换

X = ifft2(Y,m,n) ,通过对Y补0或剪裁,使Y的大小为m×n

(7)图像的离散余弦变换

离散余弦变换在图像处理中主要用于对图像(包括静止图像和运动图像)进行有损数据压缩。

B = dct2(A),对矩阵A进行2D离散余弦变换得到矩阵

B = dct2(A,m,n),通过对A补0或剪裁,使的大小为m×n

A = idct2(B),对矩阵B进行2D离散反余弦变换得到矩阵

A = idct2(B,m,n),通过对B补0或剪裁,使的大小为m×n

(8)基于数字形态学的图像变换

fo=imopen(I,se);直接开运算

fc=imclose(I,se);直接闭运算

foc=imclose(fo,se);先开后闭运算

fco=imopen(fc,se);先闭后开运算

fse=imdilate(I,se);膨胀

fes=imerode(fse,se);先膨胀再腐蚀

fse=imerode(I,se);腐蚀

fes=imdilate(fse,se);先腐蚀再膨胀

  • 25
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大冬瓜qdq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值