最新东南大学数字图像处理实验报告要点资料.docx
- 文档编号:10634937
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:22
- 大小:812.12KB
最新东南大学数字图像处理实验报告要点资料.docx
《最新东南大学数字图像处理实验报告要点资料.docx》由会员分享,可在线阅读,更多相关《最新东南大学数字图像处理实验报告要点资料.docx(22页珍藏版)》请在冰豆网上搜索。
最新东南大学数字图像处理实验报告要点资料
数字图像处理
实验报告
学号:
04211734
姓名:
付永钦
日期:
2014/6/7
1.图像直方图统计
①原理:
灰度直方图是将数字图像的所有像素,按照灰度值的大小,统计其所出现的频度。
通常,灰度直方图的横坐标表示灰度值,纵坐标为半个像素个数,也可以采用某一灰度值的像素数占全图像素数的百分比作为纵坐标。
②算法:
clearall
PS=imread('girl-grey1.jpg');%读入JPG彩色图像文件
figure
(1);subplot(1,2,1);imshow(PS);title('原图像灰度图');
[m,n]=size(PS);%测量图像尺寸参数
GP=zeros(1,256);%预创建存放灰度出现概率的向量
fork=0:
255
GP(k+1)=length(find(PS==k))/(m*n);%计算每级灰度出现的概率
end
figure
(1);subplot(1,2,2);bar(0:
255,GP,'g')%绘制直方图
axis([0255min(GP)max(GP)]);
title('原图像直方图')
xlabel('灰度值')
ylabel('出现概率')
③处理结果:
④结果分析:
由图可以看出,原图像的灰度直方图比较集中。
2.图像的线性变换
①原理:
直方图均衡方法的基本原理是:
对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。
从而达到清晰图像的目的。
②算法:
clearall
%一,图像的预处理,读入彩色图像将其灰度化
PS=imread('girl-grey1.jpg');figure
(1);subplot(2,2,1);imshow(PS);title('原图像灰度图');
%二,绘制直方图
[m,n]=size(PS);%测量图像尺寸参数
GP=zeros(1,256);%预创建存放灰度出现概率的向量
fork=0:
255
GP(k+1)=length(find(PS==k))/(m*n);%计算每级灰度出现的概率
end
figure
(1);subplot(2,2,2);bar(0:
255,GP,'g')%绘制直方图
axis([0255min(GP)max(GP)]);
title('原图像直方图')
xlabel('灰度值')
ylabel('出现概率')
%三,直方图均衡化
S1=zeros(1,256);
fori=1:
256
forj=1:
i
S1(i)=GP(j)+S1(i);%计算Sk
end
end
S2=round((S1*256)+0.5);%将Sk归到相近级的灰度
fori=1:
256
GPeq(i)=sum(GP(find(S2==i)));%计算现有每个灰度级出现的概率
end
figure
(1);subplot(2,2,4);bar(0:
255,GPeq,'b')%显示均衡化后的直方图
axis([0255min(GPeq)max(GPeq)]);
title('均衡化后的直方图')
xlabel('灰度值')
ylabel('出现概率')
%四,图像均衡化
PA=PS;
fori=0:
255
PA(find(PS==i))=S2(i+1);%将各个像素归一化后的灰度值赋给这个像素
end
figure
(1);subplot(2,2,3);imshow(PA)%显示均衡化后的图像
title('均衡化后图像')
imwrite(PA,'PicEqual.bmp');
③处理结果:
④结果分析:
通过原始图像和均衡化后的图像对比,均衡化后图像由彩色图像变为了灰度图像。
原始图像直方图与均衡化后直方图对比,均衡化后的直方图灰度值更加平均,在整幅图像中不在集中。
3.图象平滑消噪处理
①原理:
图像的平滑方法是一种实用的图像处理技术,能减弱或消除图像中的高频率分量,但不影响低频率分量。
因为高频率分量主要对应图像中的区域边缘等灰度值具有较大较快变化的部分,平滑滤波将这些分量滤去可减少局部灰度起伏,使图像变得比较平滑。
实际应用中,平滑滤波还可用于消除噪声,或者在提取较大目标前去除过小的细节或将目标内的小间断连接起来。
它的主要目的是消除图像采集过程中的图像噪声,在空间域中主要利用邻域平均法、中值滤波法和选择式掩模平滑法等来减少噪声;在频率域内,由于噪声主要存在于频谱的高频段,因此可以利用各种形式的低通滤波器来减少噪声。
②算法:
clearall;
x=imread('smooth_Gauss.jpg');
n=5;
a(1:
n,1:
n)=1;
%a即n×n模板,元素全是1
[height,width]=size(x);%hight>n,width>n
x1=double(x);
x2=x1;
fori=1:
height-n+1
forj=1:
width-n+1
c=x1(i:
i+(n-1),j:
j+(n-1)).*a;
%取出x1中从(i,j)开始的n行n列元素与模板相乘
s=sum(sum(c));%求c矩阵中各元素之和
x2(i+(n-1)/2,j+(n-1)/2)=s/(n*n);
%将与模板运算后的各元素的均值赋给模板中心位置的元素
end
end
%未被赋值的元素取原值
d=uint8(x2);
figure
(1);subplot(1,2,1);imshow(x);title('原图像');
figure
(1);subplot(1,2,2);imshow(d);title('5*5模板均值滤波后的图像');
③处理结果:
④结果分析:
由图像可知,原图像的噪声得到了较好的消除。
实验结果比较理想。
4.彩色图象锐化处理
①原理:
图像平滑往往使图像中的边界、轮廓变得模糊,为了减少这类不利效果的影响,需要利 用图像锐化技术,使图像的边缘变得清晰。
②算法:
clearall;
rgb=imread('acute.bmp');
figure
(1);subplot(2,2,1);imshow(rgb);title('原图');
lapmatrix=[111;1-81;111];
I=imfilter(rgb,lapmatrix,'replicate');
figure
(1);subplot(2,2,2);imshow(I);title('图像边缘锐化');
I_sharp=double(rgb)-double(I);
figure
(1);subplot(2,2,3);
imshow(uint8(I_sharp));title('锐化后的图像');
③处理结果:
④结果分析:
由处理后的图像与原图像对比,可以看出处理后的图像细节特征得到了增强,得到了较好的锐化效果。
5.中值滤波处理
①原理:
统计滤波器是一种非线性的空间滤波器,它的响应基于图像滤波器包围的图像区域中像素的排列,然后用统计排序结果决定的值代替中心像素的值。
统计滤波器中最常见的例子是中值滤波器,是将邻域内像素灰度的中值代替该像素的值。
对处 理椒盐噪声非常有效。
②算法:
clearall;
x=imread('r.bmp');
x=rgb2gray(x);
n=5;
[height,width]=size(x);%输入图像是p×q的,且p>n,q>n
x1=double(x);
x2=x1;
fori=1:
height-n+1
forj=1:
width-n+1
c=x1(i:
i+(n-1),j:
j+(n-1));
%取出x1中从(i,j)开始的n行n列元素,即模板(n×n的)
e=c(1,:
);%是c矩阵的第一行
foru=2:
n
e=[e,c(u,:
)];%将c矩阵变为一个行矩阵
end
mm=median(e);%mm是中值
x2(i+(n-1)/2,j+(n-1)/2)=mm;
%将模板各元素的中值赋给模板中心位置的元素
end
end
%未被赋值的元素取原值
d=uint8(x2);
figure
(1);subplot(1,2,1);imshow(x);title('原图像');
figure
(1);subplot(1,2,2);imshow(d);title('5*5模板中值滤波后的图像');
③处理结果:
④结果分析:
由处理后的图像可知,原图像中小猫脸上的圆圈得到了较好的消除。
6.伪彩色增强处理
①原理:
可以有多种方式实现从灰度空间到彩色空间的变换。
最简单的一种是把灰度图像的灰度级从0~255分成255个区间,给每个区间指定一种彩色。
这种方法较简单,但变换出的彩色有限。
从灰度空间到彩色空间的一种有代表性的变换方式是将源图像f(x,y)的灰度经红、绿、蓝3种不同变换,变成3基色的分量R(x,y)、G(x、y)、B(x、y),生成相应的彩色。
彩色的含量由变换函数而定。
还有一种伪彩色增强也可通过频率域处理来实现。
输入图像的傅立叶变换通过三个不同的滤波器被分成不同的频率分量,对各频率分量分别进行傅立叶逆变换,其结果进一步处理(如直方图均衡化或规定化),然后进行彩色合成就能得到增强后的彩色图像。
②算法:
clearall;
A=imread('pseudo.bmp');
I=rgb2gray(A);
I=double(I);
[m,n]=size(I);
L=256;
R=zeros([m,n]);
G=zeros([m,n]);
B=zeros([m,n]);
s1=find(I<=L/4);%0-L/4
R(s1)=0;
G(s1)=4*I(s1);
B(s1)=L;
s2=find(I<=L/2&I>L/4);%L/4-L/2
R(s2)=0;
G(s2)=L;
B(s2)=-4*I(s2)+2*L;
s3=find(L/2
R(s3)=4*I(s3)-2*L;
G(s3)=L;
B(s3)=0;
s4=find(3*L/4
R(s4)=L;
G(s4)=-4*I(s4)+4*L;
B(s4)=0;
out(:
:
1)=R;
out(:
:
2)=G;
out(:
:
3)=B;
out=out/256;
figure
(1);subplot(1,2,1);imshow(A);title('原图像');
figure
(1);subplot(1,2,2);imshow(out);title('伪彩色增强后图像');
③处理结果:
④结果分析:
由处理后的图像可知,经过伪彩色增强后的图像给人的视觉刺激更为强烈。
7.图像勾边处理
(1)梯度法算子
①原理:
②算法:
clear;
sourcePic=imread('edge.jpg');%读取原图像
grayPic=mat2gray(sourcePic);%转换成灰度图像
[m,n]=size(grayPic);
newGrayPic=grayPic;%为保留图像的边缘一个像素
gradNum=0;%经梯度法算子计算得到的每个像素的值
gradThreshold=0.2;%设定阈值
forj=1:
m-1%进行边界提取
fork=1:
n-1
gradNum=abs(grayPic(j+1,k)-grayPic(j,k))+abs(grayPic(j,k+1)-grayPic(j,k));
if(gradNum>gradThreshold)
newGrayPic(j,k)=255;
else
newGrayPic(j,k)=0;
end
end
end
figure,imshow(newGrayPic);
title('梯度法算子的处理结果')
③处理结果:
④结果分析:
由处理后的图像知,梯度法算子较好地勾勒出了图像的轮廓,但比较容易受到噪声的影响。
(2)Roberts算子
①原理:
②算法:
clear;
sourcePic=imread('edge.jpg');%读取原图像
grayPic=mat2gray(sourcePic);%转换成灰度图像
[m,n]=size(grayPic);
newGrayPic=grayPic;%为保留图像的边缘一个像素
robertsNum=0;%经roberts算子计算得到的每个像素的值
robertThreshold=0.2;%设定阈值
forj=1:
m-1%进行边界提取
fork=1:
n-1
robertsNum=abs(grayPic(j,k)-grayPic(j+1,k+1))+abs(grayPic(j+1,k)-grayPic(j,k+1));
if(robertsNum>robertThreshold)
newGrayPic(j,k)=255;
else
newGrayPic(j,k)=0;
end
end
end
figure,imshow(newGrayPic);
title('roberts算子的处理结果')
③处理结果:
④结果分析:
采用对角线方向相邻两像素之差表示信号的突变,检测水平和垂直方向边缘的性能好于斜线方向,定位精度比较高,但对噪声敏感,检测出的边缘较细。
prewitt算子
①原理:
因为平均能减少或消除噪声,Prewitt梯度算子法就是先求平均,再求差分来求梯度。
利用检测模板可求得水平和垂直方向的梯度,再通过梯度合成和边缘点判定,就可得到平均差分法的检测结果。
②算法:
clear;
sourcePic=imread('edge.jpg');%读取原图像
grayPic=mat2gray(sourcePic);%转换成灰度图像
[m,n]=size(grayPic);
newGrayPic=grayPic;%为保留图像的边缘一个像素
PrewittNum=0;%经Prewitt算子计算得到的每个像素的值
PrewittThreshold=0.5;%设定阈值
forj=2:
m-1%进行边界提取
fork=2:
n-1
PrewittNum=abs(grayPic(j-1,k+1)-grayPic(j+1,k+1)+grayPic(j-1,k)-grayPic(j+1,k)+grayPic(j-1,k-1)-grayPic(j+1,k-1))+abs(grayPic(j-1,k+1)+grayPic(j,k+1)+grayPic(j+1,k+1)-grayPic(j-1,k-1)-grayPic(j,k-1)-grayPic(j+1,k-1));
if(PrewittNum>PrewittThreshold)
newGrayPic(j,k)=255;
else
newGrayPic(j,k)=0;
end
end
end
figure,imshow(newGrayPic);
title('Prewitt算子的处理结果')
③处理结果:
④结果分析:
对噪声有平滑作用,检测出的边缘比较粗,定位精度低,容易损失角点。
。
Sobel算子
①原理:
Sobel算子是典型的基于一阶导数的边缘检测算子,由于该算子中引入了类似局部平均的运算,因此对噪声具有平滑作用,能很好的消除噪声的影响。
Sobel算子包含两组3x3的矩阵,分别为横向及纵向模板,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。
②算法:
clear;
sourcePic=imread('edge.jpg');%读取原图像
grayPic=mat2gray(sourcePic);%转换成灰度图像
[m,n]=size(grayPic);
newGrayPic=grayPic;%为保留图像的边缘一个像素
sobelNum=0;%经sobel算子计算得到的每个像素的值
sobelThreshold=0.8;%设定阈值
forj=2:
m-1%进行边界提取
fork=2:
n-1
sobelNum=abs(grayPic(j-1,k+1)+2*grayPic(j,k+1)+grayPic(j+1,k+1)-grayPic(j-1,k-1)-2*grayPic(j,k-1)-grayPic(j+1,k-1))+abs(grayPic(j-1,k-1)+2*grayPic(j-1,k)+grayPic(j-1,k+1)-grayPic(j+1,k-1)-2*grayPic(j+1,k)-grayPic(j+1,k+1));
if(sobelNum>sobelThreshold)
newGrayPic(j,k)=255;
else
newGrayPic(j,k)=0;
end
end
end
figure,imshow(newGrayPic);
title('Sobel算子的处理结果')
③处理结果:
④结果分析:
单独使用Sobel算子做边缘检测,边缘定位精度不高,有时还可能对非边缘像素的响应大于某些边缘处的响应或者响应差别不是很大,造成漏检或误检,但是它对噪声具有较好的鲁棒性。
(5)Kirsch算子
①原理:
Kirsch算子由8个3×3窗口模扳组成、每个模板分别代表一个特定的检测方向,其模板算子如图2.3.1所示。
在进行边缘检测时,把M0-M7所表示的边缘模板(加权矩阵)分别与图像中的一个3×3区域相乘,选取输出值为最大的模板。
然后,把这一最大输出值作为中央像素点上的边缘强度,把取得最大值的边缘模板Mk的方向k(k的取值如图2.3.2所示)作为其边缘方向。
假设图像中一点P(i,j)及其八邻域的灰度如图3.3.3所示,并设Qk(k=0,1,…,7)为图像经过kirsch算子第k个模板处理后得到的k方向上的边缘强度,则P(i,j)的边缘强度为s(i,j)=max|qk|(k=0,1,…,7),而相应的边缘方向D(i,j)={k|qk为最大值}
图2.3.1
图2.3.2图2.3.3
②算法:
clearall
>>closeall
>>A=imread('edge.jpg');
>>mask1=[-3,-3,-3;-3,0,5;-3,5,5];
>>mask2=[-3,-3,5;-3,0,5;-3,-3,5];
>>mask3=[-3,5,5;-3,0,5;-3,-3,-3];
>>mask4=[-3,-3,-3;-3,0,-3;5,5,5];
>>mask5=[5,5,5;-3,0,-3;-3,-3,-3];
>>mask6=[-3,-3,-3;5,0,-3;5,5,-3];
>>mask7=[5,-3,-3;5,0,-3;5,-3,-3];
>>mask8=[5,5,-3;5,0,-3;-3,-3,-3];
>>I=im2double(A);
>>d1=imfilter(I,mask1);
>>d2=imfilter(I,mask2);
>>d3=imfilter(I,mask3);
>>d4=imfilter(I,mask4);
>>d5=imfilter(I,mask5);
>>d6=imfilter(I,mask6);
>>d7=imfilter(I,mask7);
>>d8=imfilter(I,mask8);
>>dd=max(abs(d1),abs(d2));
>>dd=max(abs(dd),abs(d3));
>>dd=max(abs(dd),abs(d4));
>>dd=max(abs(dd),abs(d5));
>>dd=max(abs(dd),abs(d6));
>>dd=max(abs(dd),abs(d7));
>>dd=max(abs(dd),abs(d8));
>>grad=mat2gray(dd);
>>level=graythresh(grad);
>>BW=im2bw(grad,level);
>>figure,imshow(BW);
>>title('kirsch算子的处理结果')
③处理结果:
④结果分析:
Kirsch算子是像素邻域的加权和,模板中心值较大,不但产生较好的边缘效果,而且对噪声具有平滑作用。
但存在伪边缘,边缘比较粗且定位精度低。
8.使用小波分解产生多种分辨率图像
①原理:
一个图像作小波分解后,可得到一系列不同分辨率的子图像,不同分辨率的子图像对应的频率是不相同的。
高分辨率(即高频)子图像上大部分点都接近于0,越是高频这种现象越明显。
对一个图像来说,表现一个图像最主要的部分是低频部分,所以一个最简单的压缩方法是利用小波分解,去掉图像的高频部分而只保留低频部分。
②算法:
clc;
clearall;
a=imread('lenna.jpg');
X=rgb2gray(a);
subplot(221);image(X);colormap(gray(256));
title('原始图像');
axissquare;
[c,s]=wavedec2(X,2,'bior3.7');
ca1=appcoef2(c,s,'bior3.7',1);
ch1=detcoef2('h',c,s,1);
cv1=detcoef2('v',c,s,1);
cd1=detcoef2('d',c,s,1);
a1=wrcoef2('a',c,s,'bior3.7',1);
h1=wrcoef2('h',c,s,'bior3.7',1);
随科技的迅速发展,人们的生活日益趋向便捷、快速,方便,对于我国传统的手工艺制作,也很少有人问津,因此,我组想借此创业机会,在校园内开个DIY创意小屋。
它包括编织、刺绣、串珠等,让我们传统的手工制作也能走进大学,丰富我们的生活。
v1=wrcoef2('v',c,s,'bior3.7',1);
300元以下918%d1=wrcoef2('d',c,s,'bior3.7',1);
根据调查资料分析:
大学生的消费购买能力还是有限的,为此DIY手工艺品的消费不能高,这才有广阔的市场。
c1=[a1,h1;v1,d1];
subplot(222);image(c1);
2、你大部分的零用钱用于何处?
axissquare
title('分解后低频和高频信息');
ca1=appcoef2(c,s,'bior3.7',1);
ca1=wcodemat(ca1,440,'mat',0);
ca1=0.5*ca1;
subplot(223);image(ca1);colormap(gray(256));
title('第一次压缩图像');
axissquare
ca2=appcoef2(c,s,'bior3.7',2);
3、竞争对手分析ca2=wcodemat(ca2,440,'mat',0);
1、DIY手工艺市场状况分析ca2=0.25*ca2;
subplot(224);image(ca2);colormap(gra
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 东南大学 数字图像 处理 实验 报告 要点 资料