信息工程学院实验报告
课程名称:数字图像处理
成 绩: 实验项目名称:实验四 图像增强 实验时间:2016.11.08 班级: 姓名: 学号:
指导老师(签名):
一、实验目的
1.了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学理论知识。 2. 掌握图像空域增强算法的基本原理。
3. 掌握图像空域增强的实际应用及MATLAB实现。 4. 掌握频域滤波的概念及方法。 5. 熟练掌握频域空间的各类滤波器。 6.掌握怎样利用傅立叶变换进行频域滤波。
7. 掌握图像频域增强增强的实际应用及MATLAB实现。 二、实验步骤及结果分析
1. 基于幂次变换的图像增强 程序代码:
clear all; close all;
I{1}=double(imread('fig534b.tif')); I{1}=I{1}/255;
figure,subplot(2,4,1);imshow(I{1},[]);hold on I{2}=double(imread('room.tif')); I{2}=I{2}/255;
subplot(2,4,5);imshow(I{2},[]);hold on for m=1:2 Index=0;
for lemta=[0.5 5] Index=Index+1;
F{m}{Index}=I{m}.^lemta;
subplot(2,4,(m-1)*4+Index+1),imshow(F{m}{Index},[]) end end
执行结果:
第 1 页 共 16 页
图1 幂次变换增强结果
实验结果分析:
由实验结果可知,当r<1时,黑色区域被扩展,变的清晰;当r>1时,黑色区域被压缩,变的几乎不可见。
2. 直方图规定化处理 程序代码:
clear all clc close all
%0.读图像
I=double(imread('lena.tiff')); subplot(2,4,1); imshow(I,[]); title('原图') N=32;
Hist_image=hist(I(:),N);
Hist_image=Hist_image/sum(Hist_image);
Hist_image_cumulation=cumsum(Hist_image);%累计直方图 subplot(245);
stem(0:N-1,Hist_image); title('原直方图'); %1.设计目标直方图 Index=0:N-1;
%正态分布直方图
Hist{1}=exp(-(Index-N/2).^2/N); Hist{1}=Hist{1}/sum(Hist{1}); Hist_cumulation{1}=cumsum(Hist{1})
;
subplot(242);
stem([0:N-1],Hist{1}); title('规定化直方图1'); %倒三角形状直方图
Hist{2}=abs(2*N-1-2*Index); Hist{2}=Hist{2}/sum(Hist{2}); Hist_cumulation{2}=cumsum(Hist{2});
subplot(246); stem(0:N-1,Hist{2}); title('规定化直方图2'); %2. 规定化处理
Project{1}=zeros(N); Project{2}=zeros(N); Hist_result{1}=zeros(N); Hist_result{2}=zeros(N); for m=1:2 Image=I;
%SML处理(SML,Single Mapping Law单映射规则 for k=1:N
Temp=abs(Hist_image_cumulation(k)-
第 2 页 共 16 页
Hist_cumulation{m});
[Temp1,Project{m}(k)]=min(Temp); end
%2.2 变换后直方图 for k=1:N
Temp=find(Project{m}==k); if isempty(Temp) Hist_result{m}(k)=0; else
Hist_result{m}(k)=sum(Hist_image(Temp)); end end
subplot(2,4,(m-1)*4+3); stem(0:N-1,Hist_result{m});
title(['变换后的直方图',num2str(m)]); %2.3结果图 Step=256/N; for K=1:N
Index=find(I>=Step*(k-1)&I Image(Index)=Project{m}(k); end subplot(2,4,(m-1)*4+4),imshow(Image,[]); title(['变换后的结果图',num2str(m)]); end 执行结果: 规定化直方图1原图0.10.080.060.10.040.0200.0500.20.15变换后的直方图1变换后的结果图1020规定化直方图240020变换后的直方图240原直方图0.10.080.060.040.040.0200.020.080.060.120.10.080.060.040.02变换后的结果图202040002040002040 图2 直方图规定化 实验结果分析: 由实验结果可知,采用直方图规定化技术后,原图的直方图逼近规定化的直方图,从而有相应的变换后的结果图1和变换后的结果图2。 3. 灰度图像常用平常、锐化滤波 程序代码: 第 3 页 共 16 页 clear all; close all; %0.原图 I=double(imread('lena.tiff')); subplot(2,4,1);imshow(I,[]);title('原图'); %1.均值低通滤波 H=fspecial('average',5); F{1}=double(filter2(H,I)); subplot(2,4,2);imshow(F{1},[]);title('均值低通滤波'); %2.gaussian 低通滤波 H=fspecial('gaussian',7,3); F{2}=double(filter2(H,I)); subplot(2,4,3);imshow(F{2},[]);title('高斯低通滤波'); %3.增强图像=原图-均值低通滤波 F{3}=2*I-F{1}; subplot(2,4,4);imshow(uint8(F{3}),[]);title('原图-均值低通滤波'); %4.增强图像=原图-高斯低通滤波 F{4}=2*I-F{2}; subplot(2,4,5);imshow(uint8(F{4}),[]);title('原图-高斯低通滤波'); %5.'prewitt'边缘算子增强 H=fspecial('prewitt'); F{5}=uint8(I+filter2(H,I)); subplot(2,4,6);imshow(F{5},[]);title('prewitt边缘算子增强'); %6.'soble'边缘算子增强 H=fspecial('sobel'); F{6}=uint8(I+filter2(H,I)); subplot(2,4,7);imshow(F{6},[]);title('sobel边缘算子增强'); 执行结果: 原图均值低通滤波高斯低通滤波原图-均值低通滤波原图-高斯低通滤波prewitt边缘算子增强sobel边缘算子增强 图3 灰色图像平滑、锐化 实验结果分析: 由实验结果可知,均值和高斯滤波都使原图模糊,而采用原图减去低通滤波图像方法、prewitt算子、sobel算子都可以增强图像边缘。 4. 频率域滤波:对于给定图像+噪声,使用不同的频域滤波器对图像进行滤波处理。 (1)用Butterworth低通滤波器实现图像信号的滤波运算。 程序代码: 第 4 页 共 16 页
相关推荐: