美文网首页
bilateralFilter(双边滤波操作)

bilateralFilter(双边滤波操作)

作者: itfitness | 来源:发表于2019-08-05 11:03 被阅读0次

    概念

    双边滤波(Bilateral filter)是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折中处理,同时考虑空域信息和灰度相似性,达到保边去噪的目的。

    效果图对比

    ●源图像



    ●处理后图像


    函数讲解

    ●函数原型
    ○c++

    void bilateralFilter( InputArray src, OutputArray dst, int d,
                                       double sigmaColor, double sigmaSpace,
                                       int borderType = BORDER_DEFAULT );
    

    ○Android

    void bilateralFilter(Mat src, Mat dst, int d, double sigmaColor, double sigmaSpace, int borderType)
    

    ●参数解释
    ○src:源图像Mat对象,需要为8位或者浮点型单通道、三通道的图像
    ○dst:目标图像Mat对象,不能直接用src来存储处理后的图像
    ○d:表示在过滤过程中每个像素邻域的直径。如果这个值我们设其为非正数,那么OpenCV会从第五个参数sigmaSpace来计算出它来,在使用过程中我发现有点像模糊力度的意思。
    ○sigmaColor:颜色空间滤波器的sigma值。这个参数的值越大,就表明该像素邻域内有更宽广的颜色会被混合到一起,产生较大的半相等颜色区域。在使用过程中我发现有点像模糊范围的意思,范围越大看着越模糊
    ○sigmaSpace:坐标空间中滤波器的sigma值,坐标空间的标注方差。他的数值越大,意味着越远的像素会相互影响,从而使更大的区域足够相似的颜色获取相同的颜色。当d>0,d指定了邻域大小且与sigmaSpace无关。否则,d正比于sigmaSpace。使用过程中我发现这个值越大,图像的过渡效果越好。
    ○borderType:使用默认即可,即不用填。

    函数使用

    ●c++中

    #include<opencv2/opencv.hpp>
    using namespace cv;
    int main() {
        Mat src = imread("C:/Users/Administrator/Desktop/sb.png");//引入源图像
        if (src.empty()) {
            return -1;
        }
        imshow("src", src);//展示源图像
        Mat dst;
        bilateralFilter(src,dst,30,50,20);//双边滤波处理
        imshow("dst", dst);//展示目标图像
        waitKey(0);
        return 0;
    }
    

    ●Android中

    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_beauty);//获取源图像Bitmap
    Mat src = new Mat();
    Mat dst = new Mat();
    Utils.bitmapToMat(bitmap,src);//将Bitmap转换为Mat对象
    Imgproc.cvtColor(src,src,Imgproc.COLOR_RGBA2RGB);//将图像转换为三通道(CV_8UC3),因为双边滤波的操作不支持原图像的4通道(CV_8UC4)
    Imgproc.bilateralFilter(src,dst,30,50,20);//双边滤波处理
    Utils.matToBitmap(dst,bitmap);//将Mat对象转换为Bitmap对象
    imageView.setImageBitmap(bitmap);
    

    相关文章

      网友评论

          本文标题:bilateralFilter(双边滤波操作)

          本文链接:https://www.haomeiwen.com/subject/vhppdctx.html