收藏 分销(赏)

实验2.3中值滤波.docx

上传人:pc****0 文档编号:7458387 上传时间:2025-01-05 格式:DOCX 页数:4 大小:479.69KB 下载积分:10 金币
下载 相关 举报
实验2.3中值滤波.docx_第1页
第1页 / 共4页
实验2.3中值滤波.docx_第2页
第2页 / 共4页


点击查看更多>>
资源描述
实验2.3中值滤波 一、 实验代码 # include <stdlib.h> #include <stdio.h> #include <math.h> #include "cv.h" #include "highgui.h" #define U 20 //高斯分布的均值 #define D 30 //高斯分布的均方差 int Gaus_S(){ //产生高斯样本,以U为均值,D为均方差 double sum=0; for(int i=0;i<12;i++) sum+=rand()/32767.00; //计算机中rand()函数为-32767~+32767(2^15-1) //故sum+为0~1之间的均匀随机变量 return int(U+D*(sum-6)); //产生均值为U,标准差为D的高斯分布的样本,并返回 } int main() { IplImage* img,* imge,* imgA,*imgg,*imggg; int i,j,sum,k; int height,width,step,channel; uchar * data, * daat, * dd, * junzhi,*zhongzhi; CvSize czSize; imgA=cvLoadImage("D:\\123.jpg",0);//灰度图 height=imgA->height; //图像信息 width=imgA->width; step=imgA->widthStep; channel=imgA->nChannels; //图像信息 nChannels是图像通道,黑白1通道,彩色3通道 data=(uchar*)imgA->imageData;//像素 img= cvCreateImage(cvSize(imgA->width,imgA->height), imgA->depth, imgA->nChannels); dd=(uchar*)img->imageData; imgg= cvCreateImage(cvSize(imgA->width,imgA->height), imgA->depth, imgA->nChannels); junzhi=(uchar*)imgg->imageData; imggg= cvCreateImage(cvSize(imgA->width,imgA->height), imgA->depth, imgA->nChannels); zhongzhi=(uchar*)imggg->imageData; srand((unsigned)time(NULL)); //种下随机种子 //产生高斯噪声 for(i=0;i<height;i++) { for(j=0;j<width;j++) { for(int k=0;k<=channel-1;k++) { dd[i*step+j*channel+k]=data[i*step+j*channel+k]+Gaus_S(); } } } //中值滤波 int a[9],temp,p; for( i = 0 ; i < height;i++){ for( j = 0; j<width;j++){ //边界处理 if(i == 0 || i == height || j == 0 || j == width){ for(int k=0;k<channel-1;k++) zhongzhi[i*step+j*channel+k] =dd[i*step+j*channel+k]; } else { for(int k=0;k<=channel-1;k++){ a[0]= dd[(i-1)*step+(j-1)*channel+k]; a[1]= dd[(i-1)*step+j*channel+k]; a[2]= dd[(i-1)*step+(j+1)*channel+k]; a[3]= dd[i*step+(j-1)*channel+k]; a[4]= dd[i*step+j*channel+k]; a[5]= dd[i*step+(j+1)*channel+k]; a[6]= dd[(i+1)*step+(j-1)*channel+k]; a[7]= dd[(i+1)*step+j*channel+k]; a[8]= dd[(i+1)*step+(j+1)*channel+k]; //选择排序 for(k=0;k<9;k++) { p=k; for(int l=k;l<9;l++) { if(a[l]<a[p]) p=l; } temp=a[k]; a[k]=a[p]; a[p]=temp; } //取中值 zhongzhi[i*step+j*channel+k] =a[4]; } } } } cvNamedWindow("灰度图",1); cvShowImage("灰度图",imgA); cvNamedWindow("高斯噪声图",1); cvShowImage("高斯噪声图",img); cvNamedWindow("中值滤波",1); cvShowImage("中值滤波",imggg); cvWaitKey(0); return 0; }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服