opencv图像去噪实验说课讲解Word格式文档下载.docx
- 文档编号:20707073
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:30
- 大小:3.10MB
opencv图像去噪实验说课讲解Word格式文档下载.docx
《opencv图像去噪实验说课讲解Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《opencv图像去噪实验说课讲解Word格式文档下载.docx(30页珍藏版)》请在冰豆网上搜索。
模板大小7*7(对比中值滤波器的效果)
5、彩色图像均值滤波
利用OpenCV对彩色图像RGB三个通道的像素进行操作,利用算术均值滤波器和几何均值滤波器进行彩色图像去噪。
模板大小为5*5。
实验完成情况
1、实验步骤:
先为灰度图像添加高斯噪声、胡椒噪声、盐噪声和椒盐噪声,再分别利用算术均值滤波器、几何均值滤波器、谐波和逆谐波均值滤波器进行图像去噪。
核心代码如下:
添加各类噪声:
IplImage*AddGuassianNoise(IplImage*src)//添加高斯噪声
{
IplImage*dst=cvCreateImage(cvGetSize(src),src->
depth,src->
nChannels);
IplImage*noise=cvCreateImage(cvGetSize(src),src->
CvRNGrng=cvRNG(-1);
cvRandArr(&
rng,noise,CV_RAND_NORMAL,cvScalarAll(0),cvScalarAll(15));
cvAdd(src,noise,dst);
returndst;
}
IplImage*AddPepperNoise(IplImage*src)//添加胡椒噪声,随机黑色点
cvCopy(src,dst);
for(intk=0;
k<
8000;
k++)
{
inti=rand()%src->
height;
intj=rand()%src->
width;
CvScalars=cvGet2D(src,i,j);
if(src->
nChannels==1)
s.val[0]=0;
}
elseif(src->
nChannels==3)
s.val[0]=0;
s.val[1]=0;
s.val[2]=0;
cvSet2D(dst,i,j,s);
IplImage*AddSaltNoise(IplImage*src)//添加盐噪声,随机白色点
s.val[0]=255;
s.val[0]=255;
s.val[1]=255;
s.val[2]=255;
IplImage*AddPepperSaltNoise(IplImage*src)//添加椒盐噪声,随机黑白点
intm=rand()%2;
if(m==0)
s.val[0]=255;
}
else
s.val[0]=0;
}
s.val[1]=0;
s.val[2]=0;
各类滤波器实现:
//算术均值滤波器——模板大小5*5
IplImage*ArithmeticMeanFilter(IplImage*src)
cvSmooth(src,dst,CV_BLUR,5);
//几何均值滤波器——模板大小5*5
IplImage*GeometryMeanFilter(IplImage*src)
introw,col;
inth=src->
intw=src->
doublemul[3];
doubledc[3];
intmn;
//计算每个像素的去噪后color值
for(inti=0;
i<
src->
i++){
for(intj=0;
j<
j++){
mul[0]=1.0;
mn=0;
//统计邻域内的几何平均值,邻域大小5*5
for(intm=-2;
m<
=2;
m++){
row=i+m;
for(intn=-2;
n<
n++){
col=j+n;
if(row>
=0&
&
row<
h&
col>
=0&
col<
w){
CvScalars=cvGet2D(src,row,col);
mul[0]=mul[0]*(s.val[0]==0?
1:
s.val[0]);
//邻域内的非零像素点相乘
mn++;
}
}
}
//计算1/mn次方
CvScalard;
dc[0]=pow(mul[0],1.0/mn);
d.val[0]=dc[0];
//统计成功赋给去噪后图像。
cvSet2D(dst,i,j,d);
//谐波均值滤波器——模板大小5*5
IplImage*HarmonicMeanFilter(IplImage*src)
doublesum[3];
sum[0]=0.0;
//统计邻域,5*5模板
sum[0]=sum[0]+(s.val[0]==0?
255:
255/s.val[0]);
dc[0]=mn*255/sum[0];
//逆谐波均值大小滤波器——模板大小5*5
IplImage*InverseHarmonicMeanFilter(IplImage*src)
//cvSmooth(src,dst,CV_BLUR,5);
doublesum1[3];
doubleQ=2;
sum1[0]=0.0;
//统计邻域
sum[0]=sum[0]+pow(s.val[0]/255,Q+1);
sum1[0]=sum1[0]+pow(s.val[0]/255,Q);
dc[0]=(sum1[0]==0?
0:
(sum[0]/sum1[0]))*255;
实验结果如图所示:
(从左至右,从上至下分别为原图像、加噪图像、算术均值处理图像、几何均值处理图像、谐波均值处理图像、逆谐波均值处理图像)
(1)高斯噪声:
(2)胡椒噪声:
(3)盐噪声
(4)椒盐噪声
2、实验步骤:
先为灰度图像添加胡椒噪声、盐噪声和椒盐噪声,再分别利用5*5和9*9尺寸的模板对图像进行中值滤波。
IplImage*MedianFilter_5_5(IplImage*src){
cvSmooth(src,dst,CV_MEDIAN,5);
IplImage*MedianFilter_9_9(IplImage*src){
cvSmooth(src,dst,CV_MEDIAN,9);
实验结果如下图(灰度图像和加噪图像第一问中已给出,下面只列出分别利用5*5和9*9尺寸的模板对图像进行中值滤波后的图像):
灰度图像加胡椒噪声,分别利用5*5和9*9尺寸的模板对图像进行中值滤波。
灰度图像加盐噪声,分别利用5*5和9*9尺寸的模板对图像进行中值滤波。
灰度图像加椒盐噪声,分别利用5*5和9*9尺寸的模板对图像进行中值滤波。
3、实验步骤:
自适应均值滤波(以高斯噪声为例),先为灰度图像添加高斯噪声,再利用7*7尺寸的模板对图像进行自适应均值滤波。
IplImage*SelfAdaptMeanFilter(IplImage*src){
cvSmooth(src,dst,CV_BLUR,7);
doubleZxy;
doubleZmed;
doubleSxy;
doubleSl;
doubleSn=100;
CvScalarxy=cvGet2D(src,i,j);
Zxy=xy.val[0];
CvScalardxy=cvGet2D(dst,i,j);
Zmed=dxy.val[0];
Sl=0;
for(intm=-3;
=3;
for(intn=-3;
Sxy=s.val[0];
Sl=Sl+pow(Sxy-Zmed,2);
Sl=Sl/mn;
d.val[0]=Zxy-Sn/Sl*(Zxy-Zmed);
实验结果如图:
4、实验步骤:
自适应中值滤波(以椒盐噪声为例),先为灰度图像添加椒盐噪声,再利用7*7尺寸的模板对图像进行自适应中值滤波。
IplImage*SelfAdaptMedianFilter(IplImage*src){
doubleZmin,Zmax,Zmed,Zxy,Smax=7;
intwsize;
wsize=1;
while(wsize<
=3){
Zmin=255.0;
Zmax=0.0;
Zmed=0.0;
CvScalarxy=cvGet2D(src,i,j);
Zxy=xy.val[0];
intmn=0;
for(intm=-wsize;
=wsize;
row=i+m;
for(intn=-wsize;
col=j+n;
if(row>
CvScalars=cvGet2D(src,row,col);
if(s.val[0]>
Zmax){
Zmax=s.val[0];
}
if(s.val[0]<
Zmin){
Zmin=s.val[0];
Zmed=Zmed+s.val[0];
mn++;
}
Zmed=Zmed/mn;
CvScalard;
if((Zmed-Zmin)>
0&
(Zmed-Zmax)<
0){
if((Zxy-Zmin)>
(Zxy-Zmax)<
d.val[0]=Zxy;
}else{
d.val[0]=Zmed;
cvSet2D(dst,i,j,d);
break;
}else{
wsize++;
if(wsize>
3){
CvScalard;
cvSet2D(dst,i,j,d);
break;
5、实验步骤:
实验代码参照问题一,选择彩色图片、算术均值滤波器和几何均值滤波器进行彩色图像去噪。
实验结果如下图(以椒盐噪声为例):
利用算术均值滤波器:
利用几何均值滤波器:
实验中的问题
实验问题:
几何均值滤波以及谐波、逆谐波滤波没有对应的库函数
解决方法:
通过学习书本对应章节,根据公式写出程序
实验结果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- opencv 图像 实验 讲解