《计算机图形图像处理设计》实验报告.docx
《《计算机图形图像处理设计》实验报告.docx》由会员分享,可在线阅读,更多相关《《计算机图形图像处理设计》实验报告.docx(18页珍藏版)》请在冰豆网上搜索。
《计算机图形图像处理设计》实验报告
《计算机图形图像处理》实验报告册
学院:
旅游与环境学院
专业:
地理信息系统
教师:
肖冰(副教授)
组员:
周伟(41209163)
刘杰(41209165)
苟芬(41209190)
马芳(41209179)
陈家浩(41209166)
基于MATLAB图像增强处理
实验时间:
2015年6月24日
实验背景:
图像增强处理可以使得处理后的图像对给定的应用比原来的图像更加有效同时可以有效的改善图像质量。
实验目的:
1.了解MATLAB的操作环境和基本功能。
2.掌握MATLAB中图像增强处理的几种技术的使用。
3.加深理解图像增强处理的实验原理。
实验环境:
Windws7
MATLAB 7.0
二.实验原理
数字图像处理是指将图像信号转换成数字格式并利用计算机对其进行处理的过程。
在图像处理中,图像增强技术对于提高图像的质量起着重要的作用。
本文先对图像增强的原理以及各种增强方法进行概述,然后着重对灰度变换、直方图均衡化、平滑和锐化等几种常用的增强方法进行了深入的研究,在学习数字图像的基本表示与处理方法的基础上,针对图像增强的普遍性问题,研究和实现常用的图像增强方法及其算法,通过Matlab实验得出的实际处理效果来对比各种算法的优缺点,讨论不同的增强算法的适用场合,并对其图像增强方法进行性能评价。
三.实验内容及步骤:
实验流程图如下:
图像及结果输出
结果分析与讨论
1.彩色图像的均衡化步骤:
1统计原图像素每个像素的个数
2统计原图像<每个灰度级的像素的累积个数
3家里灰度级得映射规则
4将原图每个像素点的灰度映射到新图
1.clear all
2.I=imread('F:
\computer\哪吒.jpg '); %读入JPG彩色图像文件
3.imshow(I) %显示出来
4.title('哪吒')
5.I_gray = rgb2gray(I); %灰度化后的数据存入数组
6.imwrite(I_gray,'灰度图.bmp'); %保存灰度图像
7.figure,imshow(I_gray);
8.title('灰度图')
9.
10.[height,width]=size(I_gray); %测量图像尺寸参数
11.p=zeros(1,256); %预创建存放灰度出现概率的向量
12.for i=1:
height
13. for j=1:
width
14. p(I_gray(i,j) + 1) = p(I_gray(i,j) + 1) + 1;
15. end
16.end
17.s=zeros(1,256);
18.s
(1)=p
(1);
19.for i=2:
256
20. s(i)=p(i) + s(i-1); %统计图像中<每个灰度级像素的累积个数,s(i):
0,1,```,i-1
21.end
22.
23.for i=1:
256
24. s(i) = s(i)*256/(width*height); %求灰度映射函数
25. if s(i) > 256
26. s(i) = 256;
27. end
28.end
29.
30.%图像均衡化
31.I_equal = I;
32.for i=1:
height
33. for j=1:
width
34. I_equal(i,j) = s( I(i,j) + 1);
35. end
36.end
37.figure,imshow(I_equal) %显示均衡化后的图像
38.title('均衡化后图像')
39.imwrite(I_equal,'哪吒.bmp');
结果显示如下:
2对于灰度图的直方图均衡化:
有些图像在低值灰度区间上频率较大,使得图像中较暗区域中的细节看不清楚。
这时可以通过直方图均衡化将图像的灰度范围分开,并且让灰度频率较小的灰度级变大,通过调整图像灰度值的动态范围,自动地增加整个图像的对比度,使图像具有较大的反差,细节清晰。
实验代码如下:
1.%直方图均衡化
2.clear;
3.I = imread('哪吒gray.bmp');
4.[height,width] = size(I);
5.figure
6.subplot(221)
7.imshow(I)%显示原始图像
8.subplot(222)
9.imhist(I)%显示原始图像直方图
10.
11.%进行像素灰度统计;
12.s = zeros(1,256);%统计各灰度数目,共256个灰度级
13.for i = 1:
height
14. for j = 1:
width
15. s(I(i,j) + 1) = s(I(i,j) + 1) + 1;%对应灰度值像素点数量增加一
16. end
17.end
18.%计算灰度分布密度
19.p = zeros(1,256);
20.for i = 1:
256
21. p(i) = s(i) / (height * width * 1.0);
22.end
23.%计算累计直方图分布
24.c = zeros(1,256);
25.c
(1) = p
(1);
26.for i = 2:
256
27. c(i) = c(i - 1) + p(i);
28.end
29.%累计分布取整,将其数值归一化为1~256
30.c = uint8(255 .* c + 0.5);
31.%对图像进行均衡化
32.for i = 1:
height
33. for j = 1:
width
34. I(i,j) = c(I(i,j)+1);
35. end
36.end
37.
38.subplot(223)
39.imshow(I)%显示均衡化后的图像
40.subplot(224)
41.imhist(I)%显显示均衡化后的图像的直方图
结果如下所示:
3.对比度增强处理:
有些图像的对比度比较低,从而使整个图像模糊不清。
这时可以按一定的规则修改原来图像的每一个象素的灰度,从而改变图像灰度的动态范围。
实验代码如下所示:
1.clcclearA=imread('F:
\computer\哪吒.jpg');
2.f0=0;
3.f1=80;
4.f2=180;
5.f3=255;
6.y0=0;
7.y1=20;
8.y2=240;
9.y3=255;
10.I=double(A);
11.[m,n,o]=size(A)forx=1:
mfory=1:
nQ(x,y)=0;
12.ifI(x,y)<80Q(x,y)=I(x,y)*0.25;
13.elseif(I(x,y)>=80)&&(I(x,y)<180)Q(x,y)=I(x,y)*2.2-156;
14.elseQ(x,y)=I(x,y)*0.2+204;
15.end
16.end
17.End
18.P=mat2gray(Q);
19.subplot(2,2,1);
20.subimage(A);
21.title('原图');
22.subplot(2,2,2);
23.subimage(P);
24.title('对比度增强');
25.subplot(2,2,3);
26.plot([f0,f1,f2,f3],[y0,y1,y2,y3]);
27.title('灰度映射曲线')
实验结果如下图所示:
4.空域滤波增强:
(1.线性平滑滤波)
平滑滤波:
是低频增强的空间域滤波技术。
它的目的有两类:
一类是模糊;另一类是消除噪音。
空间域的平滑滤波一般采用简单平均法进行,就是求邻近像元点的平均亮度值。
邻域的大小与平滑的效果直接相关,邻域越大平滑的效果越好,但邻域过大,平滑会使边缘信息损失的越大,从而使输出的图像变得模糊,因此需合理选择邻域的大小。
实验代码如下:
I=imread('1_gray.bmp');
J=imnoise(I,'salt&pepper',0.02);
subplot(221),imshow(I)
title('原图像')
subplot(222),imshow(J)
title('添加椒盐噪声图像')
K1=filter2(fspecial('average',3),J)/255;%应用3*3邻域窗口法
subplot(223),imshow(K1)
title('3x3窗的邻域平均滤波图像')
K2=filter2(fspecial('average',7),J)/255;%应用7*7邻域窗口法
subplot(224),imshow(K2)
title('7x7窗的邻域平均滤波图像')
结果如下图所示:
(2.)二维中值滤波函数medfit2来进行图像中椒盐躁声的去除)
中值滤波:
基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替。
实验代码如下:
hood=3;%滤波窗口
[I,map]=imread('1_gray.bmp');
imshow(I,map);
noisy=imnoise(I,'salt&pepper',0.05);
figure;
imshow(noisy,map);
filtered1=medfilt2(noisy,[hoodhood]);
figure;
imshow(filtered1,map);
hood=5;
filtered2=medfilt2(noisy,[hoodhood]);
figure;
imshow(filtered2,map);
hood=7;
filtered3=medfilt2(noisy,[hoodhood]);
figure;
imshow(filtered3,map);
结果如下所示:
邻域平均法的思想是用像素及其指定邻域内像素的平均值或加权平均值作为该像素的新值,以便去除突变的像素点,从而滤除一定的噪声。
实验代码如下:
平均滤波算法:
clc;
[I,map]=imread('eight.tif');
noisy=imnoise(I,'salt&pepper',0.05);
myfilt1=[010;111;010];%4邻域平均滤波模版
myfilt1=myfilt1/9;%对模版归一化
filtered1=filter2(myfilt1,noisy);
imshow(filtered1,map);
myfilt2=[111;111;111];
myfilt2=myfilt2/9;
filtered2=filter2(myfilt2,noisy);
figure;
imshow(filtered2,map);
结果如下所示:
频域处理法:
低通滤波器:
低通滤波是一种过滤方式,规则为低频信号能正常通过,而超过设定临界值的高频信号则被阻隔、减弱。
但是阻隔、减弱的幅度则会依据不同的频率以及不同的滤波程序(目的)而改变。
实验代码如下:
[I,map]=imread('1_gray.bmp');
noisy=imnoise(I,'gaussian',0.05);
imshow(noisy,map);
myfilt1=[111;111;111];
myfilt1=myfilt1/9;
filtered1=filter2(myfilt1,noisy);
figure;
imshow(filtered1,map);
myfilt2=[111;121;111];
myfilt2=myfilt2/10;
filtered2=filter2(myfilt2,noisy);
figure;
imshow(filtered2,map);
myfilt3=[121;242;121];
myfilt3=filter2(myfilt3,noisy);
figure;
imshow(filtered3,map);
结果如下图显示:
色彩增强处理:
彩色图像和灰度图像的根本区别是:
在彩色图像中,每个像素用一个矢量(一般包括三个分量)来表示,即R分量、G分量和B分量。
而灰度图像每一个像素只用一个标量来表示。
这样,处理彩色图像时处理的是矢量,处理灰度图像处理的是标量。
我们也可以把彩色图像中的三个分量分开,分别计算加工再进行结合,这种处理技术称为基于单色的技术。
1.真彩色增强实例:
3.%真彩色图像的分解
4.clc;
5.RGB=imread('F:
\computer\酒杯.jpg');
6.subplot(221),imshow(RGB)
7.title('原始真彩色图像')
8.subplot(222),imshow(RGB(:
:
1))
9.title('真彩色图像的红色分量')
10.subplot(223),imshow(RGB(:
:
2))
11.title('真彩色图像的绿色分量')
12.subplot(224),imshow(RGB(:
:
3))
13.title('真彩色图像的蓝色分量')
结果如下图所示:
2.伪彩色增强
由于人眼的彩色敏感细胞能分辨出几千种彩色色调和亮度,但对黑白灰度级却不敏感。
热成像测温系统所产生的红外图像为黑白灰度级图像,灰度值动态范围不大,人眼很难从这些灰度级中获得丰富的信息。
为了更直观地增强显示图像的层次,提高人眼分辨能力,对系统所摄取的图像进行伪彩色处理,从而达到图像增强的效果,使图像信息更加丰富。
实验代码如下:
14.I=imread('1_gray.bmp');
15.imshow(I);
16.X=grayslice(I,16);%thresholdstheintensityimageIusing
17.%thresholdvalues1/16,2/16,…..,15/16,returninganindexed%imageinX
18.figure;
19.imshow(X,hot(16));
结果如下图所示:
3.假彩色增强
假彩色图像是用一种不同于一般肉眼看的全彩色的方式上色生成的图像,主要是为了强调突出某些用肉眼不好区别的图像。
实验代码如下:
20.[RGB]=imread('F:
\computer\酒杯.jpg');
21.imshow(RGB);
22.RGBnew(:
:
1)=RGB(:
:
3);
23.RGBnew(:
:
2)=RGB(:
:
1);
24.RGBnew(:
:
3)=RGB(:
:
2);
25.figure;
26.subplot(121);
27.imshow(RGB);
28.subplot(122);
29.imshow(RGBnew);
结果如下图所示:
实验心得体会:
通过本次实验,我们可以大致了解到了MATLAB软件的基础功能,也对计算机图像处理这门课程产生了极大的兴趣。
通过这次实验,我们能将计算机图像处理这门课与自己的专业课结合起来,能解决一些专业上的问题。
实验的过程中无论是组员之间的讨论,还是实验过程的体验,我们都收获颇丰。
通过这个实验我们不仅掌握了一些理论知识,还能渐渐地将理论与实践结合起来,这样再去了解和学习这门课程明显容易得多,也可以更好的理解。
任何实验或软件都需要多次练习和摸索,而且软件的功能并不只有这些,还有很多可以自己尝试。
MATLAB软件的熟练掌握会对我以后的学习有许多帮助,也让我对这门课产生了极大的兴趣。
任务安排细则
主题:
基于MATLAB的图像增强处理
关键词:
图像增强
组长(1人):
苟芬
课堂汇报演讲(1人):
马芳
PPT制作(2人):
周伟,刘杰
word文档编写(1人):
马芳,苟芬
Word文档修改(1人):
陈家浩
剩余查资料(苟芬,陈家浩,周伟,刘杰)
具体安排如下:
周伟:
实验数据准备
刘杰:
实验方法准备
陈家浩:
MATLAB软件下载与安装
苟芬:
实验资料准备
马芳:
实验内容整合