数字图像处理实验matlabWord下载.docx
- 文档编号:18353676
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:30
- 大小:1.72MB
数字图像处理实验matlabWord下载.docx
《数字图像处理实验matlabWord下载.docx》由会员分享,可在线阅读,更多相关《数字图像处理实验matlabWord下载.docx(30页珍藏版)》请在冰豆网上搜索。
(2)通过实验进一步掌握图像处理的基本技术和方
法。
1.应用MATLAB语言编写显示一幅灰度图像、二值图像、索引图像及彩色图像的程序,并进行相互之间的转换。
显示原始图像:
>
I=imread('
D:
\tu.jpg'
);
imshow(I);
RGB灰度图像:
代码:
I=imread('
\tu.JPEG'
imshow(I)
graytu=rgb2gray(I);
subplot(1,2,1);
subimage(I);
subplot(1,2,2);
subimage(graytu)
效果:
RGB转二值图像:
[indtu,map]=rgb2ind(I,0.5);
subimage(indtu,map)
索引转RGB图像:
I1=ind2rgb(indtu,map);
subimage(indtu,map);
subimage(I1)
索引转灰度图像:
I2gtu=ind2gray(indtu,map);
subimage(I2gtu)
灰度转索引图像:
[g2itu,map]=gray2ind(graytu,64);
subimage(graytu);
subimage(g2itu,map)
r2bwtu1=im2bw(I,0.8);
subimage(r2bwtu1)代码:
灰度转二值图像
g2bwtu1=im2bw(graytu,0.8);
subimage(g2bwtu1)
索引转二值图像
i2bwtu=im2bw(indtu,map,0.5);
subimage(i2bwtu)
2.应用MATLAB工具箱演示一幅图像的傅里叶变换、离散余弦变换,观察其频谱图,然后将它们进行逆变换,观察逆变换后的图像
(1)傅里叶正变换
F=fft2(graytu);
subimage(log(abs(F)),[3,10])
(2)傅里叶反变换
IF=ifft2(F);
subimage(log(abs(F)),[3,10]);
subimage(uint8(IF))
(3)DCT变换
B=dct2(graytu);
subimage(log(abs(B)),[3,5])
(4)IDCT变换
iB=idct2(B);
subimage(log(abs(B)),[3,5]);
subimage(uint8(iB))
总结:
傅里叶变化:
傅里叶变换是一种特殊的积分变换。
它能将满足一定条件的某个函数表示成正弦基函数的线性组合或者积分。
DCT变换:
离散余弦变换的重要特点是能量集中,信号常将其能量的大部分集中于频率域的一个小围,这样描述不重要的分量只需要很少的比特数;
频率域分解映射了人类感觉系统的处理过程,并允许后继的量化过程满足其灵敏度的要求。
变化后,能量集中的围可以精细的量化,其他的围可以粗糙量化,这样处理,不会引起太大的精度问题,符合人体的听觉,视觉需要。
这样量化后,可以用小的数据量来保存采集的数据,对处理音频,视频等数据非常有效。
3.应用MATLAB语言编程来实现一幅图像的增强
(1)取一幅灰度图像,对其进行线性点运算,要求:
要求线性函数为Y=aX+b,
(a,b)分别取(1.5,1.2)、(0.7,1.2),分析变化后图像,并分析直方图。
graytu=double(graytu);
graytu1=1.5*graytu+1.2;
subplot(2,2,1);
subimage(unit8(graytu));
subimage(uint8(graytu));
subplot(2,2,2);
imhist(uint8(graytu));
sublpot(2,2,3);
subplot(2,2,3);
subimage(uint8(graytu1));
subplot(2,2,4);
imhist(uint8(graytu1))
代码2:
graytu1=0.7*graytu+1.2;
imhist(uint8(gtaytu));
当a=0.7时,图像对比度减小,输出灰度值围减小;
当a=1.5时,图像对比度增大,输出灰度值围增大。
(2)取一幅灰度图像,对其进行直方图均衡化处理,再对其进行规定化处理,并对结果进行分析
graytu=uint8(graytu);
eqtu=histeq(graytu);
imhist(graytu);
subimage(eqtu);
imhist(eqtu)
规定化代码:
hgram=50:
2:
250;
speciatu=histeq(graytu,hgram);
subimage(graytu);
imhist(graytu);
subimage(speciatu);
imhist(speciatu)
图像均衡化将一已知灰度概率密度分布的图像经过某种变换,变成一具具有均匀灰度概率密度分布的新图像。
其结果扩展了像元取值的动态围,从而到达了增强图像整体效果的对比。
直方图规定化能自动增强整个图像的对比度,但它的具体增强效果不易控制,处理的结果总是得到全局的均衡化直方图。
思考题:
如果将一幅图像进行一次直方图均衡化处理后,再进行一次直方图均衡化处理,结果会发生变化吗?
观察两次均衡化的直方图是否一样。
答:
2次均衡化的结果是一样的
J=histeq(graytu);
JJ=histeq(J);
imhist(J);
imhist(JJ);
imshow(J);
imshow(JJ)
(3)取一幅灰度图像,加入噪声后对其进行平滑滤波(均值滤波、中值滤波),并观察不同滤波方式下的效果
noisetu=imnoise(graytu,'
salt&
pepper'
0.02);
avetu=filter2(fspecial('
average'
3),noisetu)/255;
metu=mefilt2(noisetu,[3,3]);
metu=medfilt2(noisetu,[3,3]);
title('
原图'
subploy(2,2,2);
sunimage(noisetu);
加椒盐噪声'
subimage(noisetu);
加椒盐噪声图'
subimage(avetu);
titlt('
均值平滑图'
subimage(medtu);
中值滤波图'
)
subimage(metu);
均值滤波的效果与所使用的领域半径大小有关,半径越大,像素点越多,则信噪比提高越大,平滑效果越好,但是平滑图像的模糊程度越大。
中值滤波是一种非线性滤波,可以克服整形滤波器所带来的图像细节模糊,对滤波脉冲干扰及颗粒噪声最为有效。
(4)取一幅灰度图像,采用不同的算子对其进行边缘锐化,并分析结果
sobeltu=filter2(fspecial('
sobel'
),graytu);
prewitttu=filter2(fspecial('
prewitt'
laplaciantu=filter2(fspecial('
laplacian'
subimage(sobeltu);
sobel图'
subimage(prewitttu);
prewitt图'
subimage(laplaciantu);
laplacian图'
Sobel算子:
对称的一阶差分,对中心加权具有一定的平滑作用
Prewitt算子:
一种一阶微分算子的边缘检测,利用像素点上下,左右邻点的灰度差,在边缘出到达到极值检测边缘,去掉部分伪边缘,对噪声具有边缘作用。
Lanplacian算子:
做二次微分算子,满足不同走向的图像边缘锐化要求,对噪声的增强作用减弱,一半用它进行边缘增强时,有必要将将图像先进性平滑处理。
为了达到边缘锐化的反差增强效果,实际应用中将高频增强和直方图均衡化结合起来使用,这两个操作的次序能互换吗?
效果一样吗?
不能互换,应该先进行锐化,然后再进行均衡化。
因为直方图均衡化是把原始图像的灰度直方图从某个灰度区间变成在全部灰度围的均匀分布,而将高频增强明显的意思是对图像进行高通滤波,所以如果两个处理次序互换的话不同频率成分产生影响,而使效果不一样,但都可增强反差。
imshow(graytu);
h=fspecial('
I3=filter2(h,graytu);
imshow(I3);
J=histeq(I3);
imshow(J)
4.对一幅灰度图像进行模糊处理,然后进行逆滤波、维纳滤波与约束最小二乘方滤波复原实验
PSF=fspecial('
motion'
30.45);
blurtu=imfilter(graytu,PSF,'
circular'
'
conv'
subimage(blurtu);
运动模糊图'
逆滤波代码:
wnr1tu=deconvwnr(blurtu,PSF);
subimage(wnr1tu)
维纳滤波代码:
wnr3tu=deconvwnr(blurtu,PSF,NSR);
subplot(1,3,1);
运动加噪声图'
subplot(1,3,2);
subimage(wunr2tu);
维纳滤波图'
subimage(wnr2tu);
subplot(1,3,3);
subimage(wnr3tu);
真实信噪比恢复图'
5.应用MATLAB语言编写实现一幅图像的旋转、剪切和缩放
rotattu=imrotate(graytu,45,'
nearest'
rotattu2=imrotate(graytu,45,'
bilinear'
rotattu3=imrotate(graytu,45,'
bicubic'
subplor(2,2,1);
subimage(rotate);
最邻域旋转图'
subimage(rotate1);
双线性旋转图'
subimage(rotattu2);
subimage(rotattu3);
双立方旋转图'
剪切代码:
croptu=imcrop(graytu,[100,100,200,200]);
imshow(graytu);
imshoe(croptu);
剪切图'
imshow(croptu);
缩放代码:
minimizetu=imresize(graytu,0.2,'
magnifytu=imresize(minimizetu,3,'
imshow(minimizetu)
imshow(magnifytu)
6.对一幅图像进行几何失真处理后利用连接点实施图像配准复原
C=imrotate(B,45,'
cpselect(C,B);
input_points_corr=cpcorr(input_points,base_points,C,B);
Tlinear=cp2tform(input_points,base_points,'
linear
conformal'
Tpolynomial2=cp2tform(input_points,base_points,'
polynomial'
2);
subplot(131);
imshow(B)
subplot(132);
imshow(C)
subplot(133);
imshow(imtransform(C,Tpolynomial2))
7.应用MATLAB语言编程来实现一幅图像的边缘检测
BW1=edge(graytu,'
canny'
subimage(BW1)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 处理 实验 matlab