数字图像处理图像增强.docx
《数字图像处理图像增强.docx》由会员分享,可在线阅读,更多相关《数字图像处理图像增强.docx(14页珍藏版)》请在冰豆网上搜索。
![数字图像处理图像增强.docx](https://file1.bdocx.com/fileroot1/2023-2/22/05139bc6-a042-421d-8e73-6d49e5868089/05139bc6-a042-421d-8e73-6d49e58680891.gif)
数字图像处理图像增强
图像增强
1、实验目的
1.熟练掌握图像的灰度修正,平滑去燥,锐化增强处理的原理。
2.自如的应用MATLAB环境对图像进行灰度变换、直方图处理,平滑处理,锐化处理。
2、实验原理
1.灰度变换
灰度变换是直接对像素进行处理,常用三种基本函数,线性函数、对数函数、幂函数。
可以完成图像的反转、拉伸、γ校正等,改变图像对比度、增加灰度宽度。
灰度线性变换增强使用:
J=imadjust(I,[lowhigh],[bottomtop],gamma);[lowhigh]原图像要变换的灰度范围,[bottomtop]指定的变换后的灰度范围,gamma为校正量,gamma=1线性校正,gamma>1抛物线校正,gamma<1三次曲线校正。
newmap=imadjust(map,[lowhigh],[bottomtop],gamma)调整索引图像的调色板。
2.直方图校正
直方图是图像的灰度概率统计图,修改直方图可以改变图像灰度分布状态,从而改变图像对比度。
直方图显示使用imhist(A),直方图均衡化使用J=histeq(I,n)n表示输出图像的灰度级数目,默认64;[J,T]=histeq(I,…)表示I的直方图变成J的直方图T。
直方图规定化使用J=histeq(I,n,hgram)hgram指定直方图向量。
3.图像滤波器
图像滤波器实质上是一种离散卷积处理,也叫掩膜操作。
通过使用不同模板获得不同结果。
平滑模板使图像模糊但可消除噪声,锐化模板可以提高线、点的立体效果从而实现图像分割的功能。
(1)建立滤波算子:
h=fspecial(type);h=fspecial(type,para),其中type指定算子的类型,有:
‘average’均值滤波,参数hsize代表模板尺寸,默认为[3,3];‘disk’圆形区域的均值滤波,参数为radius代表区域半径,默认为5;‘gaussian’为低通高斯滤波,参数hsize代表模板尺寸,默认为[3,3],sigma是滤波的标准差/象素,默认为0.5;’laplacian’为拉普拉斯算子,参数alpha用于控制算子形状,取值[0,1],默认为0.2;‘log’为拉普拉斯-高斯算子,参数hsize代表模板尺寸,默认为[3,3],sigma是滤波的标准差/象素,默认为0.5;‘motion’运动模糊算子,表示摄像物体逆时针方向以thera角度运动了hen个象素,len默认为9,thera默认为0;‘prewitt’边缘增强,大小[3,3];‘sobel’边缘提取;‘unsharp’对比度增强滤波,参数alpha用于控制滤波器的形状,取值[0,1],默认为0.2。
例如:
用prewitt算子对图像滤波
I=imread(‘saturn.tif’);
Subplot(1,2,1);imshow(I);
H=fspecial(‘prewitt’);
blurred=imfilter(I,H);
Subplot(1,2,2);imshow(blurred);
(2)filter2是基于卷积的图像滤波函数,J=filter2(h,I);J=filter2(h,I,shape);shape指定滤波器的卷积运算范围,shape=’full’,边界补零;shape=’same’,返回矩阵大小与I相同;shape=’valid’,不考虑边界补零,返回矩阵小于I。
(3)加噪声使用J=imnoise(I,type,para),其中type确定噪声的类型和参数。
’guassian’高斯噪声,参数M代表均值,默认为0,V代表方差,默认为0.01;‘localvar’均值为零、方差为V的高斯白噪声;‘poisson’泊松噪声;’salt&pepper’椒盐噪声,D为噪声强度,默认值为0.05;’speckle’均值为零、方差为V的均匀随机分布噪声,V为0.04。
默认类型,高斯噪声。
(4)线形滤波,h=ones(3,3)/9;线性滤波模板,J=conv2(I,h);卷积。
(5)中值滤波j=medfilt2(I,[m,n]),[m,n])滤波器窗口的大小。
J=medfilt2(I,[m,n]),[m,n],PADOPT),PADOPT边界处理方法,”symmetric”在边界处滤波器进行对称延拓,“indexed”图像为double型,用1填充边界,其它型用0填充边界。
(6)自适应滤波,J=wiener2(I,[m,n]);[m,n]滤波器窗口大小。
(7)J=edge(I,’roberts’)
3、实验内容(包括实验程序、实验图片、实验数据、实验结果分析)
(1)%对已知图像作灰度变换增强,设计程序求出已知图像的直方图,
%分别将原图亮度提高20和降低40后,再作直方图,
%在同一画面输出。
分析比较处理前后的图像统计特征参数。
clc;
clear;
A=imread('C:
\Users\Administrator\Desktop\sy3_1.jpg');
A=rgb2gray(A);
subplot(4,2,1),imshow(A),title('原图灰度图')
subplot(4,2,2),imhist(A),title('原图灰度图直方图')
B=imadjust(A,[0.20.8],[01]);
subplot(4,2,3),imshow(B),title('增强图像');
subplot(4,2,4),imhist(B),title('增强图像直方图')
C=(A+20);
subplot(4,2,5),imshow(C),title('亮度提高20');
subplot(4,2,6),imhist(C),title('+20直方图')
D=(A-40);
subplot(4,2,7),imshow(D),title('亮度降低40');
subplot(4,2,8),imhist(D),title('-40直方图')
(2)%做出已知图像的直方图,对图像进行直方图均衡化修正,规定化修正,分析修正结果。
%分析比较处理前后的图像统计特征参数。
clc;
clear;
A=imread('C:
\Users\Administrator\Desktop\sy3_1.jpg');
B=rgb2gray(A);
subplot(321),imshow(B),title('原图灰度图');
subplot(322),imhist(B),title('原图灰度图直方图')
C=histeq(B);
subplot(323),imshow(C),title('均衡化图像');
subplot(324),imhist(C),title('均衡化图像直方图');
D=histeq(B,[0,20,30,40,70,80,90,100,110,120,130,140,145,150,155,160,170,180,210,256])
subplot(325),imshow(D),title('规定化图像');
subplot(326),imhist(D),title('规定化图像直方图');
(3)%利用线性函数、对数函数、幂函数对图像进行处理,
%分析不同变换函数对同一图像处理的结果,分析比较处理前后的图像统计特征参数。
clc;
clear;
I=imread('C:
\Users\Administrator\Desktop\sy3_1.jpg');
I=rgb2gray(I);
subplot(221),imshow(I),title('原图灰度图')
A=1.3*I+1
subplot(222),imshow(A),title('线性函数处理')
r=mat2gray(double(I));
B=log(1+2*r)
subplot(223),imshow(B),title('对数函数处理')
(4)%对图像进行灰度或色彩反转、灰度拉伸、γ校正等处理,
%分析几种不同处理的结果,分析比较处理前后的图像统计特征参数。
clc;
clear;
A=imread('C:
\Users\Administrator\Desktop\sy3_1.jpg');
A=rgb2gray(A);
subplot(221),imshow(A),title('原图灰度图')
B=(255-A)
subplot(222),imshow(B),title('灰度反转图')
C=imadjust(A,[0.20.8],[],0.8)
subplot(223),imshow(C),title('灰度拉伸图')
(5)%设计程序将已知图像分别添加椒盐、高斯、泊松噪声,
%分别莺均匀滤波、高斯滤波和中值滤波处理,与原图像在同一画面输出,
%分析比较处理前后的图像统计特征参数,对处理后的图像的质量进行评价。
%%
clc;
clear;
A=imread('C:
\Users\Administrator\Desktop\sy3_1.jpg');
A=rgb2gray(A);
subplot(231),imshow(A),title('原图灰度图');
%%
%加椒盐噪声
%J=imnoise(A,'salt&pepper',0.04);
%subplot(232),imshow(J),title('加椒盐噪声后的图像');
%%
%加高斯噪声
%J=imnoise(A);
%subplot(232),imshow(J),title('加高斯噪声后的图像');
%%
%加泊松噪声
J=imnoise(A,'poisson');
subplot(232),imshow(J),title('加泊松噪声后的图像');
%%
H1=fspecial('average');
B=imfilter(J,H1);
subplot(235),imshow(B),title('均值滤波后图像');
H2=fspecial('gaussian');
C=imfilter(J,H2);
subplot(234),imshow(C),title('高斯滤波后图像');
D=medfilt2(J);
subplot(236),imshow(D),title('中值滤波后图像');
(6)%设计程序将求出已知图像中目标物的轮廓与原图像在同一画面输出。
clc;
clear;
A=imread('C:
\Users\Administrator\Desktop\sy3_1.jpg');
A=rgb2gray(A);
subplot(121),imshow(A),title('原图灰度图');
B=edge(A,'prewitt',0.05);
subplot(122),imshow(B),title('轮廓图')
(7)%对图像进行锐化处理,
%分别使用log、prewitt、sobel、roborts模板进行锐化,
%设计评价参数对处理方式进项评价。
%%
A=imread('C:
\Users\Administrator\Desktop\sy3_1.jpg');
B=rgb2gray(A);
subplot(321),imshow(B),title('原图灰度图');
%%
C=edge(B,'log',0.004);
subplot(323),imshow(C),title('log锐化图');
%%
K=edge(B,'prewitt',0.05);
subplot(325),imshow(K),title('prewitt锐化图');
%%
D=edge(B,'sobel',0.05);
subplot(326),imshow(D),title('sobel锐化图');
%%
J=edge(B,'roberts',0.05);
subplot(324),imshow(J),title('roberts锐化图');
(8)%分别对两幅不同的图像进行加减乘除运算,分析结果。
clc;
clear;
A=imread('C:
\Users\Administrator\Desktop\sy3_1.jpg');
B=imread('C:
\Users\Administrator\Desktop\sy3_2.jpg');
subplot(2,2,1),imshow(A),title('图一')
subplot(2,2,2),imshow(B),title('图二')
%%
ADD=A+B
subplot(2,2,3),imshow(ADD),title('加')
DEC=B-A
subplot(2,2,4),imshow(DEC),title('减')
%%
MUL=immultiply(A,0.5);
subplot(3,2,5),imshow(MUL),title('乘')
background=imopen(B,strel('disk',20));
DIV=imdivide(A,background);
subplot(3,2,6),imshow(DIV),title('除')
分析:
1.直方图增强处理,
由实验结果可知:
变换后直方图趋向平坦,灰度级减少,灰度合并;有展开输入图像直方图的一般趋势,直方图均衡化后的图像灰度级能跨越更大范围,实际视觉能够接收的信息量大大的增强了;直方图均衡化能自动确定变换函数,该函数寻求产生有均匀直方图的输出图像,得到的结果可预知,操作简单
2. 图像平滑
四邻域平均平滑不加门限:
这种算法简单,但它的主要缺点是在降低噪声的同时使图像模糊,特别实在边缘和细节处。
而且邻域越大在去噪能力增强的同时模糊程度越严重。
四邻域平均加门限,即超像素平滑法:
对边缘和细节处的模糊有改善,主要是这种算法的出发点是集中在在如何选择邻域的大小、形状和方向,参加平均的点数及邻域各点的权重系数等。
3..图像锐化.
图像锐化的目的是增强图像的边缘和轮廓,可通过微分使图像边缘突出、清晰,可以
通过Laplacian算子,Roberts、Prewitt和Sobel边缘检测算子等方法达到增强效果。
4、实验结论
通过这次实验,学习了图像的灰度修正,平滑去燥,锐化增强处理的原理,也学习了使用matlab环境对图像的灰度变换、直方图处理,以及平滑处理,掌握了一些图像处理技巧,以及matlab函数的使用,加深了对图像处理的理解,也巩固了所学知识。