OpenCv图像处理之双边滤波-非线性滤波(二)

OpenCv图像处理之双边滤波

#include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

void resize_img(Mat &mat, int width, int height, int interpolation = INTER_AREA);

Mat zero_mat(Mat mat, int width, int height);

int get_width(Mat mat, double scale = 0.5);

int get_height(Mat mat, double scale = 0.5);

int main() {
    
    
    Mat original_img, clone_img, dst_img, dst_another;
    original_img = imread("D:/cat.jpg", IMREAD_COLOR);
    if (original_img.empty()) {
    
    
        cout << "open error!" << endl;
        return -1;
    }
    clone_img = original_img.clone();
    double scale = 0.5;
    int width = get_width(clone_img);
    int height = get_height(clone_img);
    resize_img(clone_img, width, height);
    dst_img = zero_mat(dst_img, width, height);
    cv::medianBlur(clone_img, dst_img, 9);
    imshow("dst", dst_img);
    dst_another = zero_mat(dst_another, width, height);
    cv::bilateralFilter(clone_img, dst_another, 25, 25 * 2, 25 * 2);
    imshow("dst_another", dst_another);
    imshow("original_img", clone_img);
    waitKey(0);
    return 0;
}

效果显示
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_35140742/article/details/120275118