数字图像中值滤波操作的取证检测
- 格式:ppt
- 大小:1.69 MB
- 文档页数:26
数字图像处理基础实验指导书
信息工程学院
2013年4月16日
实验三中值滤波
一.实验目的
1.熟悉matlab图像处理工具箱及中值滤波函数的使用;
2.理解和掌握中值滤波的方法和应用;
二.实验设备
1、PC机一台;
2、软件MATLAB;
三.实验内容及步骤
1. 启动matlab
双击桌面matlab图标启动matlab环境;
2. 在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab 自带的图像,如:cameraman图像;给图像添加不同的噪声;再调用相应的图像增强(中值滤波)函数,设置参数;最后输出处理后的图像;
3.浏览源程序并理解含义;
4.运行,观察显示结果;
5.结束运行,退出;
四.实验参考程序及结果
在matlab环境中,程序首先读取图像,然后调用图像增强(中值滤波)函数,设置相关参数,再输出处理后的图像。
I = imread('cameraman.tif');
figure,imshow(I);
J1=imnoise(I,‘salt& pepper’,0.2);%添加椒盐噪声
J2= imnoise(I,‘gaussian’,0,0.005);%添加高斯噪声
J11=medfilt2(J1,[5,5]);
J22=medfilt2(J2,[5,5]);
figure,imshow(J11);
figure,imshow(J22);
五.实验报告要求
1、记录实验过程
2、给出完整结果(包括读入图像、加噪图像和滤波后的图像)。
数字图像处理之快速中值滤波算法快速中值滤波算法 : 在图像处理中,在进⾏如边缘检测这样的进⼀步处理之前,通常需要⾸先进⾏⼀定程度的降噪。
中值滤波是⼀种⾮线性数字滤波器技术,经常⽤于去除图像或者其它信号中的噪声。
这个设计思想就是检查输⼊信号中的采样并判断它是否代表了信号,使⽤奇数个采样组成的观察窗实现这项功能。
观察窗⼝中的数值进⾏排序,位于观察窗中间的中值作为输出。
然后,丢弃最早的值,取得新的采样,重复上⾯的计算过程。
中值滤波是图像处理中的⼀个常⽤步骤,它对于斑点噪声和椒盐噪声来说尤其有⽤。
保存边缘的特性使它在不希望出现边缘模糊的场合也很有⽤。
为了演⽰中值滤波器的⼯作过程,我们给下⾯的数组加上观察窗 3 ,重复边界的数值: x = [2 80 6 3] y[1] = Median[2 2 80] = 2 y[2] = Median[2 80 6] = Median[2 6 80] = 6 y[3] = Median[80 6 3] = Median[3 6 80] = 6 y[4] = Median[6 3 3] = Median[3 3 6] = 3 于是 y = [2 6 6 3] 其中 y 是 x 的中值滤波输出。
普通中值滤波算法伪代码: Input: image X of size m*n, kernel radius r. output: image Y as X. for i = r to m - r do for j = r to n - r do initialize list A[] for a = i-r to i+r for b = j-r to j+r add X(a, b) to A[] end end sort A[] then Y(i ,j) = A[A.size/2] end end 处理前: 处理后: 但是,上述算法在像素处理处的复杂度为O(r2). OpenCV实现代码:#include "cv.h"#include "highgui.h"#include <iostream>using namespace std;using namespace cv;int main(int argc, char* argv[]){Mat src = imread("beauty.jpg");Mat dst;//参数是按顺序写的//⾼斯滤波//src:输⼊图像//dst:输出图像//Size(5,5)模板⼤⼩,为奇数//x⽅向⽅差//Y⽅向⽅差GaussianBlur(src,dst,Size(5,5),0,0);imwrite("gauss.jpg",dst);//中值滤波//src:输⼊图像//dst::输出图像//模板宽度,为奇数medianBlur(src,dst,3);imwrite("med.jpg",dst);//均值滤波//src:输⼊图像//dst:输出图像//模板⼤⼩//Point(-1,-1):被平滑点位置,为负值取核中⼼blur(src,dst,Size(3,3),Point(-1,-1));imwrite("mean.jpg",dst);//双边滤波//src:输⼊图像//dst:输⼊图像//滤波模板半径//颜⾊空间标准差//坐标空间标准差bilateralFilter(src,dst,5,10.0,2.0);//这⾥滤波没什么效果,不明⽩imwrite("bil.jpg",dst);waitKey();return0;}View Code 快速中值滤波算法: O(r)复杂度的Huang算法:<> 这个代码的核⼼在于维护⼀个kernel直⽅图,可以实现快速的读取和删除扫描区域的像素值。
MATLAB中数字图像中值滤波的实现步骤MATLAB中数字图像中值滤波的实现步骤数字图像中值滤波是一种常用的图像处理技术,它可以有效地去除图像中的噪声。
在MATLAB中,实现数字图像中值滤波的步骤如下:1. 导入图像:首先,我们需要导入待处理的图像。
在MATLAB中可以使用imread函数来读取图像文件,并将其存储为一个矩阵。
2. 确定滤波窗口大小:中值滤波是一种局部处理方法,它通过对每个像素周围的邻域进行排序,并选择中间值作为滤波后的像素值。
因此,我们需要确定滤波窗口的大小。
通常情况下,窗口大小选择为奇数,以确保有一个中心像素。
3. 处理边界像素:由于滤波窗口通常是一个正方形或矩形,所以在图像的边界处可能会出现边界像素无法完全包含在滤波窗口内的情况。
为了解决这个问题,一种常见的做法是通过在图像的边界处填充一圈像素值来扩展图像。
在MATLAB中,可以使用padarray函数来实现边界像素的填充。
4. 遍历图像像素:对于图像中的每个像素,我们需要将它的邻域像素提取出来,并进行排序。
在MATLAB中,可以使用imcrop函数来提取邻域像素,并使用sort函数对像素进行排序。
5. 计算中值:排序后,我们可以直接选择排序后数组的中间值作为滤波后的像素值。
如果邻域大小为奇数,则中间值正好是排序后数组的中间元素;如果邻域大小为偶数,则可以选择中间两个元素的平均值作为中值。
在MATLAB中,可以使用median函数来计算中值。
6. 更新像素值:将计算得到的中值作为滤波后的像素值,并更新到图像矩阵中。
7. 输出结果:最后,我们可以使用imwrite函数将处理后的图像保存到文件中,或使用imshow函数显示处理结果。
以上就是MATLAB中实现数字图像中值滤波的步骤。
通过对图像进行中值滤波处理,可以有效地去除噪声,提高图像质量。
加权平均滤波:
给出下面5x5的图像和一个滤波模版
右图给的是4领域加权平均滤波模版
加权均值滤波计算答案:
计算步骤:先选取左上角这个区域,计算加权均值替换中心点0的值。
原图像每个点对应值与滤波模版的值对应相乘求和取均值,依次往后 计算其它8个点。
计算方法:(0x0+4x1+2x0+1x1+0x1+1x1+2x0+0x1+4x0)x0.25=1.5 取2 注意: 1. 周围的像素值保持不变
2. 计算每个点的值时都应该按照原图像的灰度值计算
3. 计算结果四舍五入
0 4 2 3 4 1 2 2 2 3 2 3 2 2 2 4 3 4 3 3 0 5 6 7 3 042310112041440143230567301111141000
中值滤波:
1. 选取邻域
2. 计算中值替换中心点的像素值
例如对于下面的5x5图像,选取菱形邻域
求中值: 1 2 2 3 4 中值为2,替换原来的2 后面的依次计算剩下的8点 最后结果:
注意: 1. 周围的像素值保持不变
2. 计算每个点的值时都应该按照原图像的灰度值参与计算
0 4 2 3 4 1 2 2 2 3 2 3 2 2 2 4 3 4 3 3 0 5 6 7 3 0 4 2 3 4 1 2 2 2 3
2 2 2 2 2 4 4
3 3 3 0 5 6 7 3。
数字图像处理中的图像滤波研究一、引言图像滤波是数字图像处理中的重要技术之一,用于改善图像的质量和增强图像的特定特征。
图像滤波可以去除图像中的噪声和不必要的细节,从而提高图像的视觉效果和信息传输性能。
本文将深入探讨数字图像处理中的图像滤波研究。
二、图像滤波的基本原理图像滤波是通过对图像进行局部加权平均或差值运算,改变图像的灰度分布和空间响应,从而实现图像的模糊、锐化、增强等效果。
图像滤波主要包括线性滤波和非线性滤波两种方法。
2.1 线性滤波线性滤波是指通过卷积操作实现的滤波方法。
常见的线性滤波器包括均值滤波器、高斯滤波器和中值滤波器等。
均值滤波器通过对图像区域内像素值进行平均,从而实现图像的模糊效果;高斯滤波器则通过对图像区域内像素值进行加权平均,从而实现图像的模糊和去噪效果;中值滤波器则通过选取区域内像素值的中值,从而实现图像的去噪效果。
2.2 非线性滤波非线性滤波是指通过对图像像素值进行排序和比较,选择滤波器的操作方法。
常见的非线性滤波器包括基于排序统计的滤波器、自适应滤波器和边缘保留滤波器等。
基于排序统计的滤波器通过对图像像素值进行排序,并选择特定位置的像素值进行滤波,从而实现图像的锐化和边缘增强效果;自适应滤波器则通过根据图像局部统计特性改变滤波器参数,从而实现图像的自适应处理;边缘保留滤波器则通过保留图像边缘信息的方式进行滤波,从而实现图像的去噪效果。
三、图像滤波的应用图像滤波在各个领域都有广泛的应用。
3.1 图像去噪图像去噪是图像滤波的一大应用领域。
通过应用不同的滤波器和滤波方法,可以去除图像中的椒盐噪声、高斯噪声等不同类型的噪声,提高图像的质量和清晰度。
3.2 图像增强图像增强是通过滤波方法改善图像的对比度、边缘和细节,从而使图像更加鲜明和清晰。
常见的图像增强方法包括直方图均衡化、区域增强和多尺度增强等。
3.3 图像特征提取图像滤波还可以应用于图像特征提取。
通过选择合适的滤波器和滤波算法,可以有效地提取图像中的边缘、纹理和角点等特征,为后续图像处理和分析提供基础。
中值滤波:一.实验原理中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。
方法是用某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。
二维中值滤波输出为g(x,y)=med{f(x-k,y-l),(k,l∈W)} ,其中,f(x,y),g(x,y)分别为原始图像和处理后图像。
W为二维模板,通常为3*3,5*5区域,也可以是不同的的形状,如线状,圆形,十字形,圆环形等。
二.实验内容用大小为5×5的中值滤波器对图1进行处理,在不同窗口中显示原图像及各处理结果图像。
图1—待处理图像三.实验程序%对边缘进行拓展再进行5*5滤波clearI=imread('D:\lvbo.jpg'); %读入原图像I=double(I);figure()subplot(121); %画出原图像imshow(I,[]);title('before');[M,N]=size(I);new=ones(M+4,N+4); %定义对原图像进行边沿拓展之后的新图像new(3:(M+2),3:(N+2))=I(1:M,1:N);%3到M+2行,3到N+2列与原图像相等new(1,3:N+2)=I(2,:); %行对称拓展new(2,3:N+2)=I(1,:);new(M+3,3:N+2)=I(M,:);new(M+4,3:N+2)=I(M-1,:);new(:,1)=new(:,4); %列对称拓展new(:,2)=new(:,3);new(:,N+3)=new(:,N+2);new(:,N+4)=new(:,N+1);for i=1:M; %1到M 行,1到N 列用5*5模板循环计算中值并赋值给中间数 for j=1:N; %即进行中值滤波A=new(i:i+4,j:j+4);A=A(:);B=sort(A,'ascend');C=median(B);new(i+2,j+2)=C;end ;end ;D=new(3:M+2,3:N+2);subplot(122);imshow(D,[]);title('after'); %显示均值滤波后的图像四.结果分析经过中值滤波前后图像如图2所示,由图可以看出,中值滤波后,去除了椒盐噪声,且处理之后的图像相比较于均值滤波处理之后的图像清晰,所以中值滤波效果优于均值滤波。
数字图像处理 实验三
邻域平均法(box 模板)和中值滤波处理
加入脉冲噪声后的图像:testnoise.bmp 去噪过程 结果图像
请设计程序,分别用邻域平均法,其模板为:
和中值滤波法对testnoise 图像进行去噪处理(中值滤波的模板的大小也设为3×3)。
得出实验结果图像后,比较这两种方法去噪的效果好坏,并分析具体原因。
完成上述工作后,使用程序进行验证分析:使用邻域平均法时,3×3和5×5模板大小对图像进行处理的效果有何差别?并分析原因。
附加说明:程序框架可以参考第二次实验指导书上给出的示例程序。
邻域平均法 中值滤波法
⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎣⎡1111*1111191。
数图课程设计实验报告学院:通信与信息工程学院班级:电子信息科学与技术姓名:学号:实验名称:中值滤波【一】 实验目的及要求 1.了解中值滤波的原理;2.滤波窗口种类可选; 3.可以添加多种不同噪声; 4.使用中值滤波法去除噪声;【二】 实验原理中值滤波是一种非线性滤波,由于它在实际运算过程中并不需要图像的统计特性,所以比较方便。
中值滤波首先是被应用在一维信号处理技术中,后来被二维图像信号处理技术所应用。
在一定的条件下,可以克服线性滤波器(如领域平均运算)所带来的图像细节模糊,而且对滤除脉冲干扰及图像扫描噪声最为有效。
但是对一些细节多,特别是点、线、尖顶细节多的图像 不宜采用中值滤波的方法。
中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的“中值”代替。
“中值”是指将一个领域中灰度值按照从大到小(或者相反)的顺系排列成一序列,排在中间的数就是此序列的中值。
1. 一维序列1f ,2f ,…,n f ,取窗口长度为m(m 为奇数),对此序列进行中值滤波,就是从输入序列中相继抽出m 个数,v i f -,…,1-i f ,…,1f ,…,1+i f ,…,v i f +,其中i 为窗口的中心位置,21-=m v ,再将这m 个点按其数值大小排列,取其序号为正中间的那作为输出。
用数学公式表示为:{}v i i v i i f f f Med Y +-=,,,, 21,-=∈m v Z i 2. 二维序列{}ij X 进行中值滤波时,滤波窗口也是二维的,但这种二维窗口可以有各种不同的形状,如线状、方形、圆形、十字形、圆环形等。
二维数据的中值滤波可以表示为:为滤波窗口A X Med Y ij Aj i },{,=在实际使用窗口时,窗口的尺寸以不超过图像中最小有效物体的尺寸为宜,一般先用33⨯再取55⨯逐渐增大,直到其滤波效果满意为止。
对于有缓变的较长轮廓线物体的图像,采用方形或圆形窗口为宜,对于包含尖顶角物体的图像,适宜用十字形窗口。
实验三1.实验目的:(1)对指定图像进行均值、中值滤波增强,比较增强的效果;(2)对图片进行噪声处理,进行图像恢复;2.实验内容:对指定图像进行均值、中值滤波增强,比较增强的效果。
图1是一张原始人物图像,图2是一张近似20%像素带有冲激噪声后的人物图像。
现分别利用①5×5区域的邻域平均法和②5×5中值滤波法对图2进行去噪声处理,进行图像恢复。
将原始图像及增强后的图像都显示于屏幕上,观察两种方法对去噪的不同作用。
图1图23.实验结果(代码&结果可视化)1、利用已有的图像处理应用软件集成环境编写相应的平滑程序。
5×5邻域平均法:邻域平均是最简单的平滑滤波,即是将原图的一个像素的灰度值和它周围邻近的24个像素的灰度值相加,然后求得的平均值作为新图该像素的灰度值。
具体算法类似与图像锐化。
5×5中值滤波法:采用滑动窗口法设窗口为5×5 的矩形,该窗口在被处理的图像上逐点移动内含25个像素,每次移动均计算一次中值,赋给窗口中间点,作为其灰度,具体算法类似邻域平均。
2、核心程序:邻域平均核心算法类似梯度锐化,本报告只给出中值滤波的核心程序:// 开始中值滤波// 行(除去边缘几行)for(i = iFilterMY; i < lHeight - iFilterH + iFilterMY + 1; i++){// 列(除去边缘几列)for(j = iFilterMX; j < lWidth - iFilterW + iFilterMX + 1; j++){// 指向新DIB第i行第j个像素的指针lpDst = (unsigned char*)lpNewDIBBits + lLineBytes * (lHeight - 1 - i) + j;// 读取滤波器数组for (k = 0; k < iFilterH; k++){for (l = 0; l < iFilterW; l++){lpSrc = (unsigned char*)lpDIBBits + lLineBytes * (lHeight - 1 - i + iFilterMY - k) + j - iFilterMX + l;// 保存像素值aValue[k * iFilterW + l] = *lpSrc;}}// 获取中值* lpDst = GetMedianNum(aValue, iFilterH * iFilterW);}}4.实验分析和总结采用滤波器(低频/高频)处理后的图像可以更加平滑,可以对图像去除噪音,恢复到原始图像。