OpenCV笔记-图像处理之平滑(或模糊)处理cvSmooth

示例代码:

#include <cv.h>

#include <highgui.h>

#include <cstdio>



/*

平滑处理,即模糊处理,减少图像上的噪声和失真

*/

int main()

{

    IplImage *image = cvLoadImage("4.bmp");



    cvNamedWindow("Smooth Demo-原图像");

    cvNamedWindow("Smooth Demo-简单模糊");

    cvNamedWindow("Smooth Demo-简单无缩放模糊");

    cvNamedWindow("Smooth Demo-高斯模糊");

    cvNamedWindow("Smooth Demo-中值模糊");

    cvNamedWindow("Smooth Demo-双边滤波");

    

    IplImage *temp = cvCloneImage(image);

    IplImage *temp2 = cvCloneImage(image);

    IplImage *temp3 = cvCloneImage(image);

    IplImage *temp4 = cvCloneImage(image);

    IplImage *temp5 = cvCloneImage(image);



    /*简单模糊:4*5求和除以4*5*/

    cvSmooth(image, temp, CV_BLUR, 4, 5);

    /*简单无缩放模糊:4*5求和*/

    cvSmooth(image, temp2, CV_BLUR_NO_SCALE, 4, 5);

    /*高斯模糊:9*9卷积*/

    cvSmooth(image, temp3, CV_GAUSSIAN, 9);

    /*中值模糊:9*9求中值*/

    cvSmooth(image, temp4, CV_MEDIAN, 9);

    /*双边滤波:应用双线性3*3滤波,颜色sigma=param1,空间sigma=param2*/

    cvSmooth(image, temp5, CV_BILATERAL, 10, 2);



    cvShowImage("Smooth Demo-原图像", image);

    cvShowImage("Smooth Demo-简单模糊", temp);

    cvShowImage("Smooth Demo-简单无缩放模糊", temp2);

    cvShowImage("Smooth Demo-高斯模糊", temp3);

    cvShowImage("Smooth Demo-中值模糊", temp4);

    cvShowImage("Smooth Demo-双边滤波", temp5);

    cvWaitKey(0);

    

    cvDestroyWindow("Smooth Demo-原图像");

    cvDestroyWindow("Smooth Demo-简单模糊");

    cvDestroyWindow("Smooth Demo-简单无缩放模糊");

    cvDestroyWindow("Smooth Demo-高斯模糊");

    cvDestroyWindow("Smooth Demo-中值模糊");

    cvDestroyWindow("Smooth Demo-双边滤波");

    cvReleaseImage(&image);

    cvReleaseImage(&temp);

    cvReleaseImage(&temp2);

    cvReleaseImage(&temp3);

    cvReleaseImage(&temp4);

    cvReleaseImage(&temp5);

    return 0;

}

 

你可能感兴趣的:(opencv)