滤波就是把图像中的干扰给去除掉,常用的滤波方法有线性滤波,均值滤波,拉普拉斯锐化等方法。并且每一种方法都有不同的滤波模板。
一、均值滤波:用模板扫描图像中的像素点,把扫描的点求平均值,用这个平均值代替扫描中点。
void MedianFiltering(IplImage* img, IplImage* &dst){
img = cvLoadImage("images/椒盐噪声.tif", CV_LOAD_IMAGE_GRAYSCALE);//必须是灰度图才可以正常显示!!!
dst = cvCreateImage(cvSize(img->widthStep, img->height), IPL_DEPTH_8U, 1);
dst = cvCloneImage(img);
//显示均衡化之前的图片
cvNamedWindow("原来的图像", 1);
cvShowImage("原来的图像", img);
int dir[][2] =
{ 1, 0,
-1, 0,
0, 1,
0, -1,
1, 1,
-1, -1,
1, -1,
-1, 1 };
double arr[10] = {0};
int p = 0;
int i, j, k;
int h, w;
for (i = 1; i < img->height - 1; i++){
for (j = 1; j < img->width - 1; j++){
p = 0;
unsigned char grayvalue = img->image