图像处理实验报告.docx

上传人:b****8 文档编号:29061664 上传时间:2023-07-20 格式:DOCX 页数:13 大小:2.48MB
下载 相关 举报
图像处理实验报告.docx_第1页
第1页 / 共13页
图像处理实验报告.docx_第2页
第2页 / 共13页
图像处理实验报告.docx_第3页
第3页 / 共13页
图像处理实验报告.docx_第4页
第4页 / 共13页
图像处理实验报告.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

图像处理实验报告.docx

《图像处理实验报告.docx》由会员分享,可在线阅读,更多相关《图像处理实验报告.docx(13页珍藏版)》请在冰豆网上搜索。

图像处理实验报告.docx

图像处理实验报告

 

图像处理实验报告

 

专业:

姓名:

学号:

 

1几种边缘检测算子比较

简单做了几组算子的边缘检测效果对比,包括几组梯度算子和二阶倒数算子。

这里简单记录一下Roberts算子、Sobel算子、Prewitt算子、Log算子、Canny算子的运算原理与结果。

1.1Roberts算子

Roberts算子是一种利用局部差分来寻找边缘的算子,Roberts梯度算子所采用的是对角方向相邻两像素值之差,算子形式如下:

Gx=f(i,j)-f(i-1,j-1)

Gy=f(i-1,j)-f(i,j-1)

|G(x,y)|=sprt(Gx^2+Gy^2)

Roberts梯度算子对应的卷积模版为

然后选择适当的阈值τ,若G(x,y)>τ,则(i ,j)为边缘点,否则,判断(i ,j)为非边缘点。

由此得到一个二值图像{g(i,j)},即边缘图像。

1.2Sobel算子

Sobel算子在边缘检测算子扩大了其模版,在边缘检测的同时尽量削弱了噪声。

其模版大小为3×3,其将方向差分运算与局部加权平均相结合来提取边缘。

Sobel算子所对应的卷积模版为

然后选择适当的阈值τ,若G(x,y)>τ,则(i ,j)为边缘点,边缘定位精度不够高。

当对精度要求不是很高时,是一种较为常用的边缘检测方法。

1.3Prewitt算子

同Sobel算子相似,Prewitt算子也是一种将方向的差分运算和局部平均相结合的方法,也是取水平和垂直两个卷积核来分别对图像中各个像素点做卷积运算,所不同的是,Sobel算子是先做加权平均然后再微分,Prewitt算子是先平均后求微分,其对应的卷积模版为

梯度幅值G(x,y),然后选取适当的阈值τ,若G(x,y)>τ,则(i ,j)为边缘点,否则,判断(i ,j)为非边缘点。

由此得到一个二值图像{g(i,j)},即边缘图像。

1.4Log算子

Log算子基本思想是:

先在一定的范围内做平滑滤波,然后再利用差分算子来检测在相应尺度上的边缘。

该边缘检测器的基本特征是:

(1)所用的平滑滤波器是高斯滤波器

(2)增强步骤采用的是二阶导数(即二维拉普拉斯函数)

(3)边缘检测的判据是二阶导数过零点并且对应一阶导数的极大值

实际应用中,常用的LOG算子的模版为:

1.5Canny算子

(1)高斯函数h(r)对图像进行平滑滤波,去除图像中的噪声。

(2)在每一点计算出局部梯度和边缘方向,可以利用Sobel算子、Roberts算子等来计算。

(3)对梯度进行“非极大值抑制”。

在第二步中确定的边缘点会导致梯度幅度图像中出现脊。

然后用算法追踪所有脊的顶部,并将所有不在脊的顶部的像素设为零,以便在输出中给出一条细线。

(4)双阐值化和边缘连接。

脊像素使用两个闽值Tl和竹做阂值处理,其中Tl

由于边缘阵列孔是用高闽值得到的,因此它含有较少的假边缘,但同时也损失了一些有用的边缘信息。

而边缘阵列Tl的闽值较低,保留了较多信息。

因此,可以以边缘阵列几为基础,用边缘阵列Tl进行补充连接,最后得到边缘图像。

1.6小结

本节讨论和比较了几种常用的边缘检测算子。

梯度算子计算简单,但精度不高,只能检测出图像大致的轮廓,而对于比较细的边缘可能会忽略。

Prewitt和Sobel算子比Roberts效果要好一些。

LOG滤波器和Canny算子的检测效果优于梯度算子,能够检测出图像较细的边缘部分。

不同的系统,针对不同的环境条件和要求,选择合适的算子来对图像进行边缘检测。

2几种常用消除噪声的比较分析

本节简单记录一下几种常见的消除噪声的方法,主要包括均值滤波、二维统计顺序过滤、中值滤波、离散余弦滤波、小波变化滤波、维纳滤波。

2.1均值滤波

均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。

线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度g(x,y),即g(x,y)=1/m∑f(x,y)m为该模板中包含当前像素在内的像素总个数。

2.2中值滤波

中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。

方法是用某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。

二维中值滤波输出为g(x,y)=med{f(x-k,y-l),(k,l∈W)},其中,f(x,y),g(x,y)分别为原始图像和处理后图像。

2.3二维统计顺序过滤

二维统计顺序滤波是中值滤波的推广,对于给定的n个数值{al,a2,...,an},将它们按大小顺序排列,将处于第k个位置的元素作为图像滤波输出,即序号为k的二维统计滤波。

clearall;

J1=imread('1.tif');

subplot(1,2,1);imshow(J1);

J=ordfilt2(J1,5,ones(3,4));

subplot(1,2,2);imshow(J);

w=strcat('E:

/tupian/a/erwei.png');

imwrite(J,w);

 

2.4离散余弦滤波

根据离散傅里叶变换的性质,实偶函数的傅里叶变换只含实的余弦项,因此构造了一种实数域的变换——离散余弦变换(DCT)。

X=imread('1.tif');

[m,n]=size(X);

A=dct2(X);

I=zeros(m,n);

I(1:

m/3,1:

n/3)=1;

Ydct=A.*I;

Y=uint8(idct2(Ydct));

subplot(1,2,1);

imshow(X);

subplot(1,2,2);

imshow(A);

2.5小波变化滤波

小波去噪是小波变换较为成功的一类应用,其去噪的基本思路为:

含噪图像-小波分解-分尺度去噪-小波逆变换-恢复图像。

含噪信号经过预处理,然后利用小波变换把信号分解到各尺度中,在每一尺度下把属于噪声的小波系数去掉,保留并增强属于信号的小波系数,最后再经过小波逆变换恢复检测信号。

clearall;

X=imread('1.tif');

XX=double(X);

subplot(131);imshow(X);

[c,l]=wavedec2(XX,2,'coif2');

n=[1,2];

p=[10.28,24.08];

nc=wthcoef2('h',c,l,n,p,'s');

X1=waverec2(nc,l,'coif2');

subplot(132);imshow(uint8(X1));

mc=wthcoef2('v',nc,l,n,p,'s');

X2=waverec2(mc,l,'coif2');

subplot(133);

imshow(uint8(X2));

w=strcat('E:

/tupian/a/xiaobo.png');

imwrite(uint8(X2),w);

2.5维纳滤波

实际中,滤波器的长度,即阶数是有限长的,设为M,则有:

y(n)= Σh(m)x(n-m)  m=0…M矩阵形式:

y(n)=H(m)*X(n)

如果期望信号d已知,则可以计算输出与期望信号之间的误差:

e(n)=d(n)-y(n)=d(n)-H(m)*X(n)m=0…M

令目标函数为:

MinE[e(n)^2]=E[(d(n)-H(m)*X(n))^2]

当滤波器的系数最优时,目标函数对系数的导数应该为0,即:

dE[e(n)^2]/dH=0

2E[(d(n)-H(m)*X(n))]*X(n)=0

E[(d(n)X(n))-H(m)E[X(n)X(n)]=0

根据随机过程的知识,上式可以表达为:

Rxd-H*Rxx=0

其中Rxd与Rxx分别为输入信号与期望信号的相关矩阵与输入信号的自相关矩阵。

从而有:

H=Rxx-1*Rxd

至此,便得到了Wiener滤波的基本原理与公式推导。

 

J=imread('1.tif');

%J=imread('a1.png');

K1=wiener2(J,[33]);

K2=wiener2(J,[55]);

K3=wiener2(J,[77]);

K4=wiener2(J,[99]);

subplot(2,3,2);imshow(J);

subplot(2,3,3);imshow(K1)

subplot(2,3,4);imshow(K2)

subplot(2,3,5);imshow(K3)

subplot(2,3,6);imshow(K4)

w=strcat('E:

/tupian/a/weina.png');

imwrite(K3,w);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1