C/C++ OpenCV中值滤波&双边滤波

来源:互联网 发布:女性情趣用品 知乎 编辑:程序博客网 时间:2024/05/22 17:47

中值滤波

void medianBlur(

InputArray src,

OutputArray dst,

int Ksize//只能3,5,7,9后的奇数

)

代码如下:

#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>using namespace cv;int main(){//载入图像Mat image = imread("1.jpg");//创建窗口namedWindow("中值滤波原图");namedWindow("中值滤波效果图");imshow("中值滤波原图", image);//进行滤波Mat out;medianBlur(image, out, 7);imshow("中值滤波效果图", out);waitKey(0);return 0;}

运行结果:




双边滤波bilateralFilter

void bilateralFilter(

InputArray src,

OutputArray dst,

Int d,

double sigmaColor,

double sigmaSpace,

int borderType=BORDER_DEFAULT

)

关于第三个参数:

每个像素领域的直径 负数 的话会从第四个参数推导出
如果值越大说明像素里面有越来越宽的值会在一起

代码如下:

#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>using namespace cv;int main(){//载入图像Mat image = imread("1.jpg");//创建窗口namedWindow("双边滤波原图");namedWindow("双边滤波效果图");imshow("双边滤波原图", image);//进行滤波Mat out;bilateralFilter(image, out, 50, 50 * 2, 50 / 2);imshow("双边滤波效果图", out);waitKey(0);return 0;}
运行如下:



1 0
原创粉丝点击