medianBlur(中值滤波操作)

概念

中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术。它也是一种邻域运算,类似于卷积,但是计算的不是加权求和,而是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围像素灰度值的差比较大的像素改取与周围的像素值接近的值,从而可以消除孤立的噪声点。它能减弱或消除傅立叶空间的高频分量,但影响低频分量。因为高频分量对应图像中的区域边缘的灰度值具有较大较快变化的部分,该滤波可将这些分量滤除,使图像平滑。值滤波技术在衰减噪声的同时能较好的保护图像的边缘。

效果图对比

●源图像


medianBlur(中值滤波操作)_第1张图片

●处理后图像


medianBlur(中值滤波操作)_第2张图片

函数讲解

●函数原型
○c++

void medianBlur( InputArray src, OutputArray dst, int ksize );

○Android

void medianBlur(Mat src, Mat dst, int ksize)

●参数解释
○src:源图像Mat对象
○dst:目标图像Mat对象
○ksize:滤波模板的尺寸大小,必须是大于1的奇数,如:3,5,7...

函数使用

●c++中

#include
using namespace cv;
int main() {
    Mat src = imread("C:/Users/Administrator/Desktop/medianBlur.jpg");//引入源图像
    if (src.empty()) {
        return -1;
    }
    imshow("src",src);//展示源图像
    Mat dst;
    medianBlur(src,dst,3);//中值滤波处理
    imshow("dst",dst);//展示目标图像

    waitKey(0);
    return 0;
}

●Android中

Mat src = new Mat();
Mat dst = new Mat();
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_beauty);//获取Bitmap
Utils.bitmapToMat(bitmap,src);//将Bitmap转换为Mat对象
Imgproc.medianBlur(src,dst,3);//中指滤波处理
Utils.matToBitmap(dst,bitmap);//将Mat对象转换为Bitmap对象
imageView.setImageBitmap(bitmap);

你可能感兴趣的:(medianBlur(中值滤波操作))